Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法在另一个对话框中创建Qt对话框_C++_Qt_Qt4 - Fatal编程技术网

C++ 无法在另一个对话框中创建Qt对话框

C++ 无法在另一个对话框中创建Qt对话框,c++,qt,qt4,C++,Qt,Qt4,此代码生成两个单独的对话框,而我希望其中一个对话框位于另一个对话框内: class MyTree : public QWidget { QTreeView *view; ... } //class MyTree : public QDialog {...} // same result QApplication testApp(argc, argv); QDialog *topWidget = new QDialog; M

此代码生成两个单独的对话框,而我希望其中一个对话框位于另一个对话框内:

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

对话框和树都正确显示。我就是不能强制执行包容关系

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

看看这个例子:


您的解决方案只设置了
pjrTree
的父级,但不要将其添加到QDialog布局中。您只需从
QDialog
中选择固有
类MyTree
,它直接固有
QWidget
。它将更加清晰和正确。

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

我相信你想要
对话框->设置模式(false)
-这不是一个好主意,而是制作一个功能更强大(设计)的对话框,如果(条件)MyTree现在从QDialog派生。结果相同。您是否仍在使用
topWidget
?现在应该不用