无法在另一个内部创建Qt对话框

时间:2013-10-04 10:42:42

标签: c++ qt qt4

此代码生成两个单独的对话框,而我希望一个在另一个内部:

   class MyTree : public QWidget {
        QTreeView *view;
        ...
   }
   //class MyTree : public QDialog {...}   // same result

   QApplication testApp(argc, argv);
   QDialog *topWidget = new QDialog;
   MyTree *pjrTree = MyTree::Build();
   pjrTree->setParent(topWidget);
   topWidget->show();
   testApp.exec();

对话框和树都正确显示。我只是无法强制实施遏制关系。

3 个答案:

答案 0 :(得分:1)

你完全错误地做了。您必须创建一个包含元素的布局。

看看这个例子:

http://qt-project.org/doc/qt-5.0/qtwidgets/dialogs-findfiles.html

答案 1 :(得分:0)

您的解决方案仅设置pjrTree的父级,但不将其添加到QDialog布局中。您可以简单地class MyTree来自QDialog,它直接固有QWidget。它会更加明确和正确。

答案 2 :(得分:0)

QTreeView派生MyTree类,而不是将指针QTreeView作为成员变量,解决了我的问题。