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

How to create common objects for dialogs in QT

本文关键字:对话框 创建 公共对象 QT      更新时间:2023-10-16

在我的QT应用程序我有三个对话框命名为"一","二","三"。我想在对话框"一"中显示和隐藏对话框"二"answers"三"(使用按钮),反之亦然。我的问题是如何为所有对话框创建对象(例如对话框"一","二","三"的对象),以便我可以在所有其他对话框中调用任何对话框,我试图在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();
}

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

你可以这样做:

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指针,你可以将它们存储在一个向量中,如果你想灵活地控制总共有多少个对话框。