PySide6 QTabWidget添加标签后无法正常显示子部件内容问题
问题根因
- 自定义标签页类内部额外创建了子QWidget承载内容,但该子控件没有绑定到作为标签页根节点的外层类实例上,导致根节点为空,无内容渲染
- 多余的
show()调用不需要,QTabWidget会自动管理各标签页的显隐状态
修复方案
直接将布局绑定到自定义标签页类的实例本身,不需要额外嵌套一层子QWidget,修正后的代码如下:
class WelPage(QWidget): def __init__(self): super().__init__() # 布局直接绑定到当前实例self grid = QGridLayout(self) lab_name = QLabel("This is a label") git_link = QLabel("This is a link") git_link.setOpenExternalLinks(True) yt_link = QLabel("Another Link") yt_link.setOpenExternalLinks(True) grid.addWidget(lab_name, 0, 1) grid.addWidget(git_link, 1, 0) grid.addWidget(yt_link, 1, 3) class AboutPage(QWidget): def __init__(self): super().__init__() # 布局直接绑定到当前实例self lo = QVBoxLayout(self) purpose = QLabel("A really long label") lo.addWidget(purpose)
主函数逻辑无需调整即可正常运行,也可以删除多余的tw.show()调用,父控件显示时会自动渲染子组件。
内容的提问来源于stack exchange,提问作者Aadil Faizal
相关产品推荐
相关产品推荐

