我有一个问题,我在 main() 中这样调用我的 QDialog:
app.setQuitOnLastWindowClosed(true);
splashWin startWin;
if(!startWin.exec())
{
// Rejected
return EXIT_SUCCESS;
}
// Accepted, retrieve the data
startWin.myData...
在 QDialog 我有以下代码:
splashWin::splashWin(QWidget *parent) :
QDialog(parent),
ui(new Ui::splashWin)
{
ui->setupUi(this);
this->setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
this->setAttribute(Qt::WA_QuitOnClose);
}
void splashWin::on_OK_clicked()
{
// Prepare my data
..
accept();
}
void splashWin::show_About_Window()
{
MyAboutWindow win;
setVisible(false); // <- this causes the application to send a "reject" signal!! why??
win.exec();
setVisible(true);
}
这是一个非常简单的代码,问题是: setVisible(false) 或 hide() 行显示了关于窗口,但是一旦该窗口被关闭,就会发送“拒绝”对话框代码并且我的应用程序关闭执行
// Rejected
return EXIT_SUCCESS;
main() 的行
这是为什么?在我读到的文档中, hide() 不应该返回任何东西。我正在使用 Qt 4.8.2