#python #button #pyqt5
#python #кнопка #pyqt5
Вопрос:
В этом коде я расположил четыре кнопки в QVBoxLayout
, и в результате на картинке кнопки покрывали все окно. Я также создал другое окно, но оно было в QtDesigner
, и этот дизайн не охватывает весь экран. Вместо этого он размещает кнопки в определенной части экрана. Вот картинка. Как написать код кнопок, чтобы они находились в определенной части окна?
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(200, 200, 400, 300)
self.setWindowTitle("PyQt5 QVBoxLayout")
self.setWindowIcon(QIcon("picture.png"))
vbox = QVBoxLayout()
b1 = QPushButton("First")
b2 = QPushButton("Second")
b3 = QPushButton("Third")
b4 = QPushButton("Fourth")
vbox.addWidget(b1)
vbox.addWidget(b2)
vbox.addWidget(b3)
vbox.addWidget(b4)
self.setLayout(vbox)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Комментарии:
1. Правильный вопрос: что вы собираетесь делать с другой частью окна? Макеты существуют по определенным причинам: самое главное, они позволяют объектам адаптировать свой размер в зависимости от их требований и доступного пространства, а также гарантируют, что всегда соблюдается минимальный требуемый размер. Использование фиксированной геометрии считается плохой практикой , но есть случаи, для которых предпочтительно (или требуется) некоторое пустое пространство.
2. Мне нужна другая часть для текстовой метки, флажка и т.д.
3. Макеты уже позаботятся обо всем, как только объекты будут вставлены. Я предлагаю вам попробовать использовать их и понять, как они работают. Подробнее об использовании макетов в designer . Если вам нужен какой-то «заполнитель» для виджетов, которые будут динамически создаваться позже, рассмотрите простой пустой QWidget.