PyQt4向选项卡窗口添加多个网格布局

2024-03-29 11:06:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是PyQt4和python2.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中

^{pr2}$

我试了一个错误。我环顾四周,找不到类似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'

Tags: selfright部件linetablecurrentleftlabel
1条回答
网友
1楼 · 发布于 2024-03-29 11:06:51

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

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

相关问题 更多 >