Есть ли способ применить QVBoxLayout к QFormLayout

Я нашел в Интернете некоторый учебный код о QFormLayout:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
def window():
    app = QApplication(sys.argv)
    win = QWidget()

    l1 = QLabel("Name")
    nm = QLineEdit()

    l2 = QLabel("Address")
    add1 = QLineEdit()
    add2 = QLineEdit()
    fbox = QFormLayout()
    fbox.addRow(l1, nm)
    vbox = QVBoxLayout()

    vbox.addWidget(add1)
    vbox.addWidget(add2)
    fbox.addRow(l2, vbox)
    hbox = QHBoxLayout()

    r1 = QRadioButton("Male")
    r2 = QRadioButton("Female")
    hbox.addWidget(r1)
    hbox.addWidget(r2)
    hbox.addStretch()
    fbox.addRow(QLabel("sex"), hbox)
    fbox.addRow(QPushButton("Submit"), QPushButton("Cancel"))
    win.setLayout(fbox)

    win.setWindowTitle("PyQt")
    win.show()
    sys.exit(app.exec_())

Правый нижний - это то, как выглядит оригинальный графический интерфейс.

Когда я перетащил виджет по горизонтали, правый верхний выглядит как графический интерфейс.

Когда я перетаскивал виджет по вертикали, левый - это то, как выглядит GUI.

Кажется, что эти метки и кнопки будут следовать за горизонтальным изменением, но не смогли измениться, поскольку основной виджет изменяется по вертикали. Есть ли способ сделать это, чтобы все кнопки и надписи динамически менялись?

0 ответов

Другие вопросы по тегам