引用第12楼zhenzhenniun于2009-10-13 13:55发表的 :
不是这意思,是插槽accept ()是点击退出,现在想用它保存完本dialog之后再退出,需要在accept里面定义一下,或者不用accept 而新建一个save(),问题是save()插槽该怎么定义下,否则cilick 和save 之间将是空连接,点击无效
这个问题更简单了,你的accept关闭了dialog,但是这个dialog的对象实例仍然存在阿!我估计你就是想在关闭以后还能获得dialog内部某些控件的值。
我举个例子吧!如果你的dialog是一些lineEdit, 类似一些property setting,打开这个dialog后,你修改了这些lineEdit的值,然后你想关闭后获得这些值。
code大概是这样的:
QString oldValue1="OldValue1";
QDialog myDialog;
Ui::myDesignedDialog dialogData;
dialogData.setupUi(&myDialog);
dialogData.lineEdit1->setText(oldValue1);
myDialog.show();
QString value1 = dialogData.lineEdit1->text();
......
上边是最简单的情况下.
稍微复杂点的,你需要自己写个class,并且重载accept slot
在你的accept里,不调用QDialog::accept().
然后在你的dialog类里的构造函数把调用者的指针传进来,保存起来(子类不能销毁)。
这样,你可以在构造函数里通过这个指针访问调用者,同时保存结果给调用者。