如何在PyQT5中拉伸QBoxLayout?

时间:2017-09-24 17:18:31

标签: python pyqt5 stretch boxlayout

如何在PyQT5中拉伸QHboxLayout和QVBoxLayout?我应该使用哪种方法?结果的图片在链接中给出(如您所见,当窗口很小时,它也不适合窗口的形状)

from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, 
QLabel, QVBoxLayout, QHBoxLayout, QWidget, QDesktopWidget
import sys


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        label1 = QLabel('Введите слова')
        words = QTextEdit()

        label2 = QLabel('Результат')
        result = QTextEdit()

        vbox1 = QVBoxLayout()
        vbox1.addStretch(1)
        vbox1.addWidget(label1)
        vbox1.addWidget(words)

        vbox2 = QVBoxLayout()
        vbox2.addStretch(1)
        vbox2.addWidget(label2)
        vbox2.addWidget(result)

        hbox = QHBoxLayout()
        hbox.addStretch(1)
        hbox.addLayout(vbox1)
        hbox.addLayout(vbox2)
        self.setLayout(hbox)


        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('try')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Window()
    sys.exit(app.exec_())

小窗口

完整窗口

1 个答案:

答案 0 :(得分:2)

您必须将 hbox 放入 QWidget 并将其设置为中央小部件。

main_widget = QWidget()
main_widget.setLayout(hbox)
self.setCentralWidget(main_widget)