我设计了一个基于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()
工作正常。
如果有更好的方法,请告诉我
答案 0 :(得分:0)
在设计器中宣传一个小部件只是一种说法“我知道这看起来像<标准小部件>”,但是当你生成代码时,我实际上希望你在这里创建一个<更专业的小部件>。您宣传的小部件(以及促销的基类)需要是您要宣传的类型的祖先类型。
在您的特定情况下,升级小部件的基础应该是QWidget(而不是QFrame),因为这是Form1的类型。你应该在你的框架中放置一个普通的QWidget,并推广那个小部件而不是框架。