我正在尝试在 QStackedLayout 的帮助下将多个表添加到 QTabWidget 的单个选项卡中。 这是我的代码:
class ui(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('ui')
self.generalLayout = QGridLayout()
self._centralWidget = QWidget(self)
self.setCentralWidget(self._centralWidget)
self._centralWidget.setLayout(self.generalLayout)
self.table()
def table(self):
self.tabs_layout = QTabWidget()
self.stack_layout = QStackedLayout()
self.display1 = QTableWidget()
self.display1.setColumnCount(2)
self.display1.setHorizontalHeaderLabels(['S. No.', 'Title'])
self.header = self.display1.horizontalHeader()
self.header.setSectionResizeMode(0, QHeaderView.ResizeToContents)
self.header.setSectionResizeMode(1, QHeaderView.Stretch)
self.display2 = QTableWidget()
self.display2.setColumnCount(2)
self.display2.setHorizontalHeaderLabels(['S. No.', 'Name'])
self.header = self.display2.horizontalHeader()
self.header.setSectionResizeMode(0, QHeaderView.ResizeToContents)
self.header.setSectionResizeMode(1, QHeaderView.Stretch)
self.stack_layout.addWidget(self.display1)
self.stack_layout.addWidget(self.display2)
self.tabs_layout.addTab(self.stack_layout,'1')
self.generalLayout.addWidget(self.tabs_layout,0,0)
执行上述代码时出现以下错误:
Traceback (most recent call last):
File "ui.py", line 52, in <module>
main()
File "ui.py", line 44, in main
window = ui()
File "ui.py", line 15, in __init__
self.table()
File "ui.py", line 38, in table
self.tabs_layout.addTab(self.stack_layout,'1')
TypeError: arguments did not match any overloaded call:
addTab(self, QWidget, str): argument 1 has unexpected type 'QStackedLayout'
addTab(self, QWidget, QIcon, str): argument 1 has unexpected type 'QStackedLayout'
有什么办法可以解决这个问题吗?
最佳答案
QTabWidget.addTab
排除小部件作为其第一个参数,但您正在提供布局。要解决此问题,您可以初始化 QWidget
,将其布局设置为 self.stack_layout
并将此小部件添加到 self.tabs_layout
而不是 >self.stack_layout
。即在 table(self)
中,将 self.tabs_layout.addTab(self.stack_layout,'1')
替换为类似
tab = QWidget()
tab.setLayout(self.stack_layout)
self.tabs_layout.addTab(tab,'1')
关于python - 如何在 PyQt5 的选项卡小部件中添加堆叠布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62116166/