0

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

   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();

对话框和树都正确显示。我只是无法强制执行包含关系。

4

3 回答 3

1

你做的完全不正确。您必须创建一个布局,其中包含您的元素。

看这个例子:

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

于 2013-10-04T10:50:34.177 回答
0

您的解决方案仅设置了父级,pjrTree但不将其添加到 QDialog 布局。你可以简单地从固有class MyTreeQDialog,它直接固有QWidget的。它会更清晰和正确。

于 2013-10-04T11:01:08.470 回答
0

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

于 2013-10-14T16:54:03.443 回答