在Qt C++中,QMessageBox::warning()函数会创建一个警告消息框。要实现弹出两秒后自动关闭的效果,可以使用QTimer结合槽函数来实现。以下是示例代码:
#include <QApplication>
#include <QMessageBox>
#include <QTimer>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建一个警告消息框
QMessageBox messageBox;
messageBox.setWindowTitle("警告");
messageBox.setIcon(QMessageBox::Warning);
messageBox.setText("这是一个警告消息框!");
// 设置定时器
QTimer timer;
QObject::connect(&timer, &QTimer::timeout, &messageBox, &QMessageBox::close);
timer.setSingleShot(true);
timer.start(2000); // 2秒后关闭消息框
// 弹出消息框
messageBox.exec();
return app.exec();
}
上述代码创建了一个警告消息框,并使用定时器将其设置为在两秒后自动关闭。通过连接QTimer
的timeout
信号与messageBox
的close()
槽函数,以达到延迟关闭的效果。
请注意,在执行模态对话框(messageBox.exec()
)时,程序会阻塞直到用户关闭消息框。如果你希望非模态显示消息框,请改用messageBox.show()
方法,并适当处理事件循环。
内容由零声教学AI助手提供,问题来源于学员提问