У меня есть приложение pyqt5 на основе GUI. Я просто хочу, чтобы все виджеты, такие как Текстовое поле или Кнопки , имели фиксированный размер. И я успешно это сделал! Но
Я хочу, чтобы, если кто-то изменял размеры окна, виджеты должны были иметь одинаковый фиксированный размер НО он должен увеличивать / уменьшать пробелы между ними, а не изменять размер виджетов. (Я не хочу, чтобы мои виджеты были изменены, поэтому я выбираю этот метод для увеличения / уменьшения их расстояния между собой).
Например: (исходное состояние приложения) (Попытка изменить размер окна до большего размера по вертикали, но вы можете видеть, что нет кнопок Размер виджета изменился. Просто добавлено больше места ...) (Попытка изменить размер по горизонтали)
Я обнаружил, что QSizePolicy
делает то же самое, что я хочу, но не сделал хороших примеров нигде нет.
Это мой код:
from PySide2 import QtWidgets
from PySide2.QtWidgets import QApplication, QMainWindow
from PySide2.QtGui import QPainter, QBrush, QPen, QColor, QPolygon
from PySide2.QtCore import Qt, QRect, QPoint, QRectF
import sys
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow,self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle("test app")
self.label = QtWidgets.QLineEdit(self)
self.label.setText("my first label!")
self.label.move(110,10)
self.label.resize(180,25)
self.b1 = QtWidgets.QPushButton(self)
self.b1.setText("Fixed Button size!")
self.b1.move(180,250)
self.b1.resize(110, 25)
self.b1.setStyleSheet("""
background-color: #4CAF50;
border: none;
color: white;
text-align: center;
font-size: 12px;
font-family: Arial
""")
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.drawRectangles(qp)
qp.end()
def drawRectangles(self, qp):
col = QColor(0, 0, 0)
col.setNamedColor('#d4d4d4')
qp.setPen(col)
qp.setBrush(QColor(200, 50, 8))
qp.drawRect(0, 0, 100, 299)
qp.setBrush(QColor(250, 255, 250))
qp.drawRect(110, 50, 180, 180)
def window():
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
window()
Скрывает виджеты при изменении размера. Я хочу сделать кнопки и текстовые виджеты, чтобы добавить пробелы между ними при изменении размера. Теперь он скрывает эти виджеты, потому что я не использовал hstack
или vstack
. Я знаю.
Просто не знаю, как использовать QSizePolicy
для разнесения.
Заранее спасибо ...