QDialog :: exec在3次通话后做出反应

时间:2013-06-16 12:30:46

标签: c++ qt

我正在使用自定义对话框,并通过调用显示它:

this->numberPick.move(point);
this->numberPick.setWindowFlags(Qt::SplashScreen);
this->numberPick.setParent(this);
this->numberPick.setModal(true);
this->numberPick.exec();

所有这些代码都在void MainWindow::on_boardView_clicked(const QModelIndex &index){}中调用(事件"点击"来自QTableView)。

问题很奇怪。我需要点击我的按钮3次才能显示对话框。第二次点击后,Qt Creator会给我一个警告"QDialog::exec: Recursive call detected"

有趣的是,这只发生一次(在单个应用程序实例中)。下一次点击就像魅力一样。

1 个答案:

答案 0 :(得分:0)

我还没有解决这个问题,但我做了一些解决方法,它的工作原理如下:

this->numberPick = new NumberPick(this);
this->numberPick->setCell(cell);
this->numberPick->move(point);
this->numberPick->setWindowFlags(Qt::SplashScreen);
this->numberPick->exec();
delete this->numberPick;

但问题仍然存在