代码之家  ›  专栏  ›  技术社区  ›  user1050619

使用多个布局的Pyqt5格式

  •  0
  • user1050619  · 技术社区  · 6 年前

    我有4个标签,第一行需要第一张2表,第二行需要下一张2表。

    下面的代码工作正常,但行跨越整个屏幕。

    import sys
    
    from PyQt5.QtWidgets import QWidget, QApplication, QDialog, QGridLayout, QLabel, QLineEdit
    from PyQt5.Qt import QHBoxLayout, QWindow, QMainWindow, QVBoxLayout
    
    
    class Example(QMainWindow):
        def __init__(self, *args, **kwargs):
            super(Example, self).__init__(*args, **kwargs)            
            self.initUI()
    
        def initUI(self):
            vlayout = QVBoxLayout()
            hlayout1 = QHBoxLayout()
            hlayout2 = QHBoxLayout()
            widget = QWidget()
            widget.setLayout(vlayout)
    
            a1 = QLabel('label1')
            a2 = QLabel('label2')
            hlayout1.addWidget(a1)
            hlayout1.addWidget(a2)
            hlayout1.addStretch(2)
            vlayout.addLayout(hlayout1)
            vlayout.addStretch(1)
            a3 = QLabel('label3')
            a4 = QLabel('label3')
            hlayout2.addWidget(a3)
            hlayout2.addWidget(a4)
            hlayout2.addStretch(1)
            vlayout.addLayout(hlayout2)
            vlayout.addStretch(1)
    
            self.setCentralWidget(widget)
    
            self.setGeometry(500, 500, 500, 500)
            self.setWindowTitle('Lines')
            self.show()
    
    
    if __name__ == '__main__':
    
        app = QApplication(sys.argv)
        ex = Example()
    #     ex.show()
        sys.exit(app.exec_())
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   S. Nick    6 年前

    删除行 vlayout.addStretch(1)

    导入系统 从pyqt5.qtwidgets导入qwidget、qapplication、qdialog、qgridlayout、qlabel、qlineedit 从pyqt5.qt导入qhboxlayout、qwindow、qmainwindow、qvboxlayout 类示例(qmainwindow): 定义初始化(self,*args,**kwargs): super(例如,self)。初始化(*args,**kwargs) iNi() 定义initui(self): vlayout=qvboxlayout()。 hlayout1=qhboxlayout()。 hlayout2=qhboxlayout()。 widget=qwidget()。 widget.setlayout(vlayout) a1=qlabel('label1') a2=qlabel('label2') hlayout1.addwidget(A1) hlayout1.addwidget(a2) 布局1.添加拉伸(2) vlayout.addlayout(布局1) #vlayout.addstretch(1)<-- a3=qlabel('label3') A4=Qlabel(‘label3’) 布局2.addwidget(a3) hlayout2.addwidget(A4) 布局2.添加拉伸(1) vlayout.addlayout(布局2) vlayout.addStretch(1) self.setcentralwidget(小部件) 自设置几何图形(500、500、500、500) self.setWindowTitle('行') 显示() 如果“名称”= app=qapplication(系统argv) EX=示例() (x) 系统退出(app.exec_u()) < /代码>

    enter image description here