0

我设计了一个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

任何帮助表示赞赏。

编辑:

我使用了基类 asQFrame并在 ui_form2.h 中注释掉了以下几行,并且它有效frame->setFrameShape()并且frame->setFrameShadow()有效。

如果有更好的方法请告诉我

4

1 回答 1

0

在设计器中推广一个小部件只是一种说法,“我知道这看起来像 <Standard Widget>,但是当你生成代码时,我实际上希望你在这里创建一个 <More Specialized Widget>”。您提升的小部件(以及提升的基类)必须是您要提升到的类型的祖先的类型。

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

于 2013-11-21T16:17:33.513 回答