【发布时间】:2018-07-21 20:47:43
【问题描述】:
我有一个 pyqt 应用程序,当在 gridlayout 上使用相同的 QLabel 类实例时,它不起作用。我看到只显示一个实例。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QAction, qApp, QMenu, QTextEdit, QToolBar, QMdiArea, QGridLayout, QLabel, QDialog
from PyQt5.QtGui import QFont, QIcon, QPainter, QVector2D
from PyQt5.Qt import QDesktopWidget, QMainWindow, Qt, QHBoxLayout, QVBoxLayout,\
QLineEdit
from PyQt5.QtCore import QPoint
class Example(QDialog):
count = 0
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.initUI()
def initUI(self):
grid = QGridLayout()
a1 = QLabel('alphanumeric characters')
a2 = QLabel('alphanumeric characters')
grid.addWidget(QLabel('Name'), 1, 0)
grid.addWidget(QLineEdit(), 1, 1)
grid.addWidget(QLabel('only alphanumeric'), 1, 2)
grid.addWidget(QLabel('Street1'), 2, 0)
grid.addWidget(QLineEdit(), 2, 1)
grid.addWidget(QLabel('only alphanumeric'), 2, 2)
grid.addWidget(QLabel('Street2'), 3, 0)
grid.addWidget(QLineEdit(), 3, 1)
grid.addWidget(QLabel('only alphanumeric'), 3, 2)
grid.addWidget(QLabel('City'), 3, 0)
grid.addWidget(QLineEdit(), 3, 1)
grid.addWidget(QLabel('only alphanumeric'), 3, 2)
self.setLayout(grid)
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_())
【问题讨论】:
-
错字:将
grid.addWidget(a1, 1, 0) grid.addWidget(a1, 1, 1)更改为grid.addWidget(a1, 1, 0) grid.addWidget(a2, 1, 1) -
我不能使用同一个实例 - a1 吗?我的网格将有 3 列和多行..第 3 列的大部分内容将只包含信息性消息 - '只有字母数字字符"
-
您可以更好地解释自己,尝试将这两行更改为:grid.addWidget(a1, 1, 0, 2, 1)
-
你不能使用同一个实例,你想得到什么?
-
我已经编辑了代码,如果您注意到我创建了多个 QLabel 实例只是为了在网格的第 3 列上显示“仅字母数字”文本。
标签: python pyqt pyqt5 qgridlayout