在Qt中,QMessageBox::information()函数创建的消息框默认是一个模态对话框,用户需要手动关闭它。如果您希望在一定时间后自动关闭消息框,可以使用QTimer类来实现。
以下是一个示例代码,在两秒钟后自动关闭信息消息框:
#include <QApplication>
#include <QMessageBox>
#include <QTimer>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建一个信息消息框
QMessageBox msgBox;
msgBox.setWindowTitle("信息");
msgBox.setText("这是一条重要的信息!");
msgBox.setStandardButtons(QMessageBox::Ok);
// 使用定时器,在两秒钟后关闭消息框
QTimer::singleShot(2000, &msgBox, SLOT(accept()));
msgBox.exec();
return app.exec();
}
上述代码使用了QTimer::singleShot()
函数,在指定的时间间隔(这里是2000毫秒,即2秒)后调用accept()
槽函数来关闭消息框。
请注意,使用msgBox.exec()
而不是直接调用msgBox.show()
来显示消息框。因为在exec()之后才会进入事件循环,保证了定时器的正常工作。
这样,运行程序后会弹出一个标题为”信息”、内容为”这是一条重要的信息!”的消息框,并在两秒钟后自动关闭。
内容由零声教学AI助手提供,问题来源于学员提问