繁体   English   中英

PyQt4-将多个网格布局添加到选项卡小部件

[英]PyQt4 - Adding multiple grid layouts to a tab widget

我正在使用PyQt4和Python 2.7。 最初,我有一个QGridLayout,它带有两个表小部件,还有一些杂项。 东西。

self.table_left = QtGui.QTableWidget(self)
self.table_right = QtGui.QTableWidget(self)
self.label_desired = QtGui.QLabel(self)
self.line = QtGui.QLineEdit(self)
self.label_current = QtGui.QLabel(self)

self.grid = QtGui.QGridLayout(self)
self.grid.addWidget(self.table_left, 0, 0, 20, 1)
self.grid.addWidget(self.table_right, 0, 1, 20, 1)
self.grid.addWidget(self.label_desired, 0, 2, 1, 3)
self.grid.addWidget(self.line, 1, 2, 1, 3)
self.grid.addWidget(self.label_current, 2, 2, 1, 3)

但是现在我想使用一个for循环来生成这些表和GridLayout,并将它们添加到tabwidget中,

for k, value in enumerate(self.form_no):
    self.grid[k] = QtGui.QGridLayout(self)
    self.grid[k].addWidget(self.table_left[k], 0, 0, 20, 1)
    self.grid[k].addWidget(self.table_right[k], 0, 1, 20, 1)
    self.grid[k].addWidget(self.label_desired[k], 0, 2, 1, 3)
    self.grid[k].addWidget(self.line[k], 1, 2, 1, 3)
    self.grid[k].addWidget(self.label_current[k], 2, 2, 1, 3)
    self.tabwidget.addTab(self.grid[k], str(value))

当我尝试此操作时,出现类型错误。 我环顾四周,找不到像GridWidget这样的东西。 如何解决此错误,以将GridLayouts添加到选项卡小部件?

TypeError: arguments did not match any overloaded call:
  QTabWidget.addTab(QWidget, QString): argument 1 has unexpected type 'QGridLayout'
  QTabWidget.addTab(QWidget, QIcon, QString): argument 1 has unexpected type 'QGridLayout'

QWidget添加到选项卡,而不是添加QLayoutself.tabwidget.addTab(widget) 然后将self.grid[k]设置为此小部件的布局: widget.setLayout(self.grid[k])

widget = QtGui.QWidget()
widget.setLayout(self.grid[k])
tabwidget.addTab(widget, str(value))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM