繁体   English   中英

Qt Designer:嵌套小部件不是成员吗?

[英]Qt designer: nested widget is not a member?

我正在使用Qt Creator 3.2.1。 使用Qt Designer,我做了基本的设计:通过添加一个普通的QWidget并将其提升到我的自定义窗口中 ,我在 窗口中添加了一个自定义窗口小部件( CustomWidget widget )。 在该自定义小部件中,我添加了QGraphicsView( QGraphicsView视图 )。

Qt Designer的对象浏览器正确显示了项目的层次结构: 部件内的视图mainwindow中的 部件

但是,表单生成的ui_mainwindow.h给了我:

// 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 Designer中调整类设计以使小部件的 视图成为成员?

Qt ,用于定义窗口小部件层次结构的规则不是包含而是育儿。 widget1类型的WidgetType1将内部绘制widget2类型的WidgetType2如果widget2是父widget1 ,不如果类WidgetType2包含类型的成员WidgetType2 widget2可设定的父widget1通过使widget2作为母体中的构造widget2或通过使用widget2.setParent(widget1); 布局还可以定义Parent/child层次结构。

是的,您可以具有包含并定义其他对象的对象类型,但是如果不将this作为父对象传递给成员对象,则不会在容器类类型窗口小部件内绘制成员对象。

在您的情况下,不需要多个类,您只需要使要成为容器的对象成为要成为孩子的对象的父级即可。 有关更多信息,我建议阅读Qt文档“ 布局管理”和“ 对象树和所有权”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM