如何将 QtDesigner ui 表单加载到另一个 ui 表单的 QFrame 中?
Posted
技术标签:
【中文标题】如何将 QtDesigner ui 表单加载到另一个 ui 表单的 QFrame 中?【英文标题】:How to load a QtDesigner ui form into a QFrame of another ui form? 【发布时间】:2013-11-21 16:06:49 【问题描述】:我设计了一个基于QWidget
的QtDesigner ui 表单。让我们称之为Form1。我在其中添加了一些按钮和标签。现在我设计了另一个基于 QWidget 的 qt ui 设计器表单。让我们称之为 Form2。我在 Form 2 中有一个 QFrame,我想在其中加载 Form1。
我做了一些阅读,发现我可以右键单击 QFrame 并选择提升到。我把基类作为QFrame。提升类名称为 Form1。头文件为 form1.h。
我现在收到错误消息:
Form1 has no member named 'setFrameShape'
Form1 has no member named 'setFrameShadow'
我将基类更改为QWidget
。而且它仍然没有在Form2的QFrame中加载Form1
感谢任何帮助。
编辑:
我使用基类作为QFrame
和
我在 ui_form2.h 中注释掉了以下几行,它可以正常工作 frame->setFrameShape()
和 frame->setFrameShadow()
并且可以正常工作。
如果有更好的方法请告诉我
【问题讨论】:
【参考方案1】:在设计器中推广一个小部件只是一种说法,“我知道这看起来像
在您的特定情况下,您提升的小部件的基础应该是 QWidget(而不是 QFrame),因为那是 Form1 的类型。您应该在框架内放置一个普通的 QWidget 并提升该小部件而不是框架。
【讨论】:
@Giz:我不确定你的意思。在 Designer 中提升一个小部件只是告诉它如何生成代码。当您在代码中创建小部件时,您已经在控制代码。 我在 qt 设计器中设计我的 ui。我右键单击并使用提升到选项。通过代码可以实现同样的事情吗?当我做 ui->widget-> 这只是为了知识时,我没有看到任何提升功能。你上面的回答解决了我的问题以上是关于如何将 QtDesigner ui 表单加载到另一个 ui 表单的 QFrame 中?的主要内容,如果未能解决你的问题,请参考以下文章