在我的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();
}
但我不知道如何在另一个对话框中调用此指针对象。指导我,
答案 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指针,那么您可以将它们存储在向量中,如果您希望灵活处理总共有多少对话框。