You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:45:14