首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt-creator:我的QMessageBox没有关闭

Qt-creator:我的QMessageBox没有关闭
EN

Stack Overflow用户
提问于 2013-06-17 18:11:51
回答 2查看 1.3K关注 0票数 0

如果用户错误地按下了删除按钮,我将使用QMessageBox来警告用户。当用户按下QMessageBox中的Ok按钮时,将调用一个函数从QTableView (连接到数据库)中删除一行。删除后,应刷新QTableView,并显示新数据(不包括已删除的行)。

现在,当用户点击Delete button时,将出现警告QMessageBox。然后,当他按下Ok时,该行将从QTableView中删除。在这一点上,我希望QMessageBox消失,并显示新的更新版本的QTableView,但这并没有发生!!。相反,QMessageBox再次出现,刷新必须手动完成(因为我刚刚启动应用程序)。为什么会发生这种情况?

下面是我的代码:

代码语言:javascript
复制
QMessageBox msg;
msg.setIcon(QMessageBox::Warning);
msg.setText("Delete");
msg.setInformativeText("continue ?");
msg.setDetailedText("Delete permanently");
msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msg.setDefaultButton(QMessageBox::Cancel);

int ret = msg.exec();
if(ret == 1024){
    msg.Close;
    deleteDataBaseRecord(); // connect to server and delete DB data which is then show the QTableView again
}
else {
    msg.Close;
}
EN

回答 2

Stack Overflow用户

发布于 2013-06-17 18:44:03

你没有()在你的死里逃生...这真的是C++吗?

不要使用关键字(delete)作为函数名。

此外,当有可用的名称时,不要使用常量(1024)。

票数 0
EN

Stack Overflow用户

发布于 2013-06-18 18:31:00

您应该调用msg.close() (不使用大写C)来关闭msg消息框。

此外,如果单击了OK按钮,则QMessageBox::exec()方法的返回值可以为QMessageBox::Ok。实际上,QMessageBox::Close (在您的例子中是msg.Close)可以是这些按钮之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17145061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档