C++ Qt设计器:嵌套小部件不是成员?
Im使用Qt Creator 3.2.1。 使用Qt设计器,我进行了基本的设计:通过添加一个普通的QWidget并将其升级到我的自定义窗口,我向我的主窗口添加了一个自定义小部件(CustomWidget widget)。 在这个自定义小部件中,我添加了一个QGraphicsView(QGraphicsView视图) Qt Designer的对象浏览器正确显示项目的层次结构:小部件内的视图和主窗口内的小部件 但是,该表单生成的ui_mainwindow.h提供了:C++ Qt设计器:嵌套小部件不是成员?,c++,qt,widget,C++,Qt,Widget,Im使用Qt Creator 3.2.1。 使用Qt设计器,我进行了基本的设计:通过添加一个普通的QWidget并将其升级到我的自定义窗口,我向我的主窗口添加了一个自定义小部件(CustomWidget widget)。 在这个自定义小部件中,我添加了一个QGraphicsView(QGraphicsView视图) Qt Designer的对象浏览器正确显示项目的层次结构:小部件内的视图和主窗口内的小部件 但是,该表单生成的ui_mainwindow.h提供了: // in ui_mainwin
// in ui_mainwindow.h
class Ui_MainWindow
{
public:
CustomWidget *widget;
QGraphicsView *view;
// ...
};
当我真的期待:
// in ui_mainwindow.h
class Ui_MainWindow
{
public:
CustomWidget *widget;
// ...
};
// in customwidget.h
class CustomWidget
{
public:
QGraphicsView *view;
// ...
};
另一个小部件的嵌套小部件不应该是它的成员吗
如何在Qt设计器中调整我的类设计以使视图成为小部件的成员?在
Qt
中,定义小部件层次结构时使用的规则不是包含,而是父级<如果widget2
是widget1
的父级,而不是类widgetype2
包含widgetype2
类型的成员,则类型widgetype1
的code>widget1将在类型widgetype2
的widget2
内部绘制<通过在widget2
的构造函数中将widget2
作为父项传递,或者使用widget2.setParent(widget1),可以将code>widget2
设置为widget1
的父项代码>。布局还可以定义父/子层次结构
是的,您可以拥有包含和定义其他对象的对象类型,但是如果您不将this
作为成员对象的父对象传递,则不会在容器类类型小部件中绘制成员对象
在您的情况下,不需要有多个类,您只需将要作为容器的对象设置为要作为子对象的对象的父对象。有关更多信息,我建议您阅读和的
Qt
文档。谢谢您的回答。小部件绘图没有问题。问题是,在我看来,Qt设计器在父窗口小部件中不包含嵌套窗口小部件。您希望创建CustomWidget的多个实例。将QGraphicsView*视图包含在其中更有意义。