//设置警报 void AdClient::GUI_WarningMsg(QString title, QString text, QString buttons, QString defaultButton) { Q_UNUSED(buttons)//忽略编译器发出的警告,表明变量event未使用 Q_UNUSED(defaultButton) QMessageBox::warning(this,title,text); QTimer::singleShot(5000,this,SLOT(closeTimeOutMsgBox_slot()));// 5s后必执行 return; } //自动确定 void AdClient::closeTimeOutMsgBox_slot() { if(!QMessageBox::isHidden()) { QMessageBox::accept(); } }如何解决自动确定
时间: 2023-03-30 09:00:22 浏览: 115
AdClient:演示客户端应用程序,用于测试JSON服务器
问题的方法是在 closeTimeOutMsgBox_slot 函数中添加一个判断,如果消息框已经被关闭,则不执行自动确定的操作。可以使用 QMessageBox::isHidden() 函数来判断消息框是否已经被关闭。代码如下:
void AdClient::closeTimeOutMsgBox_slot() {
if(!QMessageBox::isHidden() && QMessageBox::isVisible()) {
QMessageBox::accept();
}
}
阅读全文