如何将QTabWidget嵌入QVBoxLayout?代码无显示问题排查
QTabWidget嵌入QVBoxLayout后无显示的解决办法
问题核心是你在布局里添加QTabWidget时用错了方法——addChildWidget()是Qt布局内部用于管理子布局或特定内部元素的接口,不能用来添加普通界面部件。把它换成布局的标准添加方法addWidget()就能解决问题。
修改后的完整代码:
from PySide6.QtWidgets import ( QApplication, QLabel, QMainWindow, QTabWidget, QVBoxLayout, QWidget, ) class Window(QMainWindow): def __init__(self) -> None: super().__init__() self.label = QLabel("Label") self.tab_widget = QTabWidget() self.tab_widget.addTab(self.label, "Tab") # 改用垂直布局嵌套,添加部件用addWidget self.v_box_layout = QVBoxLayout() self.v_box_layout.addWidget(self.tab_widget) # 这里可以继续添加其他组件,比如在标签下方加个按钮 # self.v_box_layout.addWidget(QPushButton("下方按钮")) self.central_widget = QWidget() self.central_widget.setLayout(self.v_box_layout) self.setCentralWidget(self.central_widget) self.show() application = QApplication() window = Window() application.exec()
修改说明:
- 将
self.v_box_layout.addChildWidget(self.tab_widget)替换为self.v_box_layout.addWidget(self.tab_widget) - 这样修改后,QTabWidget能正常显示在布局中,你还可以继续调用
addWidget()在标签下方添加任意需要的组件。
内容的提问来源于stack exchange,提问作者bers
相关产品推荐
相关产品推荐

