我有一个pyqt应用程序,并且在gridlayout上使用QLabel类的相同实例时,它不起作用。我只看到一个实例。
add
答案 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_())