将自定义小部件添加到 QStackedWidget
Posted
技术标签:
【中文标题】将自定义小部件添加到 QStackedWidget【英文标题】:Adding custom widgets to QStackedWidget 【发布时间】:2011-03-16 08:13:23 【问题描述】:我在向 QStackedWidget 添加自定义小部件时遇到了困难。我想在这个堆叠的小部件中包含一个具有不同网格布局的小部件。
如果有人能告诉我如何在堆叠的小部件内设置布局(按钮等),那就更好了。包含堆叠小部件的主对话框非常简单,我不想仅仅为了堆叠小部件中的一个小部件而用大量的网格将它弄乱。
目前我正在尝试将复杂的小部件作为一个单独的类,并使用.addWidget()
将此类的一个实例插入到堆叠的小部件中(这不起作用)。
也许我想错了?
我正在使用 PyQt,但 C++ 的答案是可以接受的——我可以通过查看 C++ 来了解事情是如何工作的(嗯,到目前为止我一直很好 =s)。
【问题讨论】:
如果您认为已完成,请关闭此问题:) 【参考方案1】:如果您使用的是 QtCreator,我建议您这样做:
-
将每个页面/小部件设计为单独的类(单独的 *.cpp、*.h 和 *.ui 文件)- 按 ctrl+n 并选择 Qt / Qt 设计器表单类。
将 X 页面/小部件添加到stackedWidget。 X 是您创建的视图数
将每个小部件提升为您的自定义设计页面(右键单击右侧的对象树并选择提升小部件)。在“promoted class name enter”字段中输入您创建的自定义页面的名称。
这应该会让你上星。我希望它能解决你的问题。当然你必须设计每个视图。
【讨论】:
您好,谢谢您的提示!我最终通过脚本完成了这一切,而没有创建单独的类,这很好。我将设计器 ui 文件转换为 .py 并阅读了有助于堆的文件。最后,只是我对布局的东西不太聪明。但无论如何,终于想出了如何将一个带有自己 gridLayout 的小部件放在主 gridLayout 等中。它工作得很好!当你把它分解成这样的部分时,创建 UI 会容易得多! 这两个网站非常有用:zetcode.com/tutorials/pyqt4/layoutmanagement 如果 QtCreator 也支持 Python 那就太好了:)以上是关于将自定义小部件添加到 QStackedWidget的主要内容,如果未能解决你的问题,请参考以下文章
使用 Qt Creator 中设计的自定义小部件将页面动态添加到 QStackedWidget
将自定义小部件添加到 Flutter TabBar 的活动选项卡