设置窗口小部件的相同实例在PyQt中不起作用

时间:2018-07-21 20:47:44

标签: python pyqt pyqt5 qgridlayout

我有一个pyqt应用程序,并且在gridlayout上使用QLabel类的相同实例时,它不起作用。我只看到一个实例。

add

1 个答案:

答案 0 :(得分:1)

首先,坐标从(0,0)开始,这样我的部分已经更正。

要解决此问题,您不必一一添加,addWidget()方法已重载,因此有一个4和5参数分别指示行和列的跨度。

  

void addWidget(QWidget * widget,int行,int列,Qt :: Alignment   对齐= ...)

     

void addWidget(QWidget * widget,int fromRow,int fromColumn,int    rowSpan ,整数 columnSpan ,Qt :: Alignment alignment = ...)

import sys

from PyQt5.QtWidgets import QApplication, QDialog, QGridLayout, QLabel, QLineEdit


class Example(QDialog):
    def __init__(self, *args, **kwargs):
        super(Example, self).__init__(*args, **kwargs)            
        self.initUI()

    def initUI(self):
        grid = QGridLayout(self)
        a1 = QLabel('alphanumeric characters')
        a2 = QLabel('alphanumeric characters')

        grid.addWidget(QLabel('Name'), 0, 0)
        grid.addWidget(QLineEdit(), 0, 1)
        grid.addWidget(QLabel('Street1'), 1, 0)
        grid.addWidget(QLineEdit(), 1, 1)
        grid.addWidget(QLabel('Street2'), 2, 0)
        grid.addWidget(QLineEdit(), 2, 1)
        grid.addWidget(QLabel('City'), 3, 0)
        grid.addWidget(QLineEdit(), 3, 1)

        grid.addWidget(QLabel('only alphanumeric'), 0, 2, 4, 1)

        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_())