如何将QtDesigner ui表单加载到另一个ui表单的QFrame中?

时间:2013-11-21 16:06:49

标签: qt qwidget qt-designer qtgui qframe

我设计了一个基于QWidget的QtDesigner ui表单。让我们称之为Form1。我在其中添加了几个按钮和标签。现在我设计了另一个基于QWidget的qt ui设计器表单。我们称之为Form2。我在表单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 个答案:

答案 0 :(得分:0)

在设计器中宣传一个小部件只是一种说法“我知道这看起来像<标准小部件>”,但是当你生成代码时,我实际上希望你在这里创建一个<更专业的小部件>。您宣传的小部件(以及促销的基类)需要是您要宣传的类型的祖先类型。

在您的特定情况下,升级小部件的基础应该是QWidget(而不是QFrame),因为这是Form1的类型。你应该在你的框架中放置一个普通的QWidget,并推广那个小部件而不是框架。