如何在QT中为对话框创建公共对象

时间:2015-09-22 09:59:07

标签: c++ qt

在我的QT应用程序中,我有三个名为“one”,“two”,“three”的对话框。我想在对话框“一”(使用按钮)中显示和隐藏对话框“两个”和“三个”,反之亦然,对于所有对话框。我的问题是如何为所有对话框创建对象(例如对话框的对象) “one”,“two”,“three”),这样我可以在所有其他对话框中调用任何对话框,我试图在main()函数中创建对象,如,

#include "one.h"
#include "two.h"
#include "second.h"
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  one *s = new one();
  two *d = new two();
  three *s = new three();
  return a.exec();
}

但我不知道如何在另一个对话框中调用此指针对象。指导我,

1 个答案:

答案 0 :(得分:3)

你可以这样做:

one *d1 = new one();
two *d2 = new two();
three *d3 = new three();
d1.establish(d2, d3);
d2.establish(d1, d3);
d3.establish(d1, d2);

也就是说,在创建了所有对话框之后,通知每个对话框指向其他对话框。当然,如果你愿意,你可以创建一个函数来封装这个逻辑,甚至可以用一个类来保存所有三个对话框。

上面的establish()方法只是一个假设的名称;你必须自己实现它。例如:

void establish(one* d1, two* d2) {
  m_dlg1 = d1;
  m_dlg2 = d2;
}

如果您的对话框只需要通用QDialog指针,那么您可以将它们存储在向量中,如果您希望灵活处理总共有多少对话框。