【发布时间】:2020-11-16 08:35:03
【问题描述】:
我正在尝试在 GridLayout 上创建 x 个表,其中 x 是列表的大小,mylist。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5 import *
class basicWindow(QWidget):
def __init__(self):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
mylist = [['Admin',['int a','int b','int c'],
['Student',['int a','int b','int c','int d','int e']]]
for i in range(len(mylist)):
table = QTableWidget()
table.setColumnCount(1)
table.setRowCount(len(mylist[i][1]))
for j in range(len(mylist[i][1])):
table.setItem(j,0,QTableWidgetItem(mylist[i][1][j]))
vBox = QVBoxLayout()
vBox.addWidget(table)
grid.addWidget(vBox,i,0)
self.setWindowTitle('Basic Grid Layout')
if __name__ == '__main__':
app = QApplication(sys.argv)
windowExample = basicWindow()
windowExample.show()
sys.exit(app.exec_())
但是每次我运行这段代码。它给了我下面的错误。我已经尝试分别为 Vbox 和 Grid 添加 addWidget 方法的最大参数数。但它似乎也没有工作。请指导,因为我现在坚持了一段时间。
TypeError: arguments did not match any overloaded call:
addWidget(self, QWidget): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] =
Qt.Alignment()): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] =
Qt.Alignment()): argument 1 has unexpected type 'QVBoxLayout'
【问题讨论】:
-
将
grid.addWidget(vBox,i,0)更改为grid.addLayout(vBox,i,0) -
@eyllanesc,非常感谢!它的工作。但是 addLayout 有什么不同呢?
标签: python-3.x python-2.7 pyqt pyqt5