1.需求

在实际工程项目中,一般是在C++中读取配置文件信息。当用户修改的配置文件数据不在设定范围时,需要弹出警告框,提示用户正确修改。

2.使用时出现的错误

(1)在main.cpp中包含头文件
#include<QMessageBox>

main函数中添加

QMessageBox::critical(NULL, "critical", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
(2)编译运行,发现找不到QMessageBox头文件。

QML Quick C++程序中使用QMessageBox_c/c
这是因为Quick项目的pro中,没有包含widgets模块。pro文件中添加

QT += widgets
(3)编译运行,仍然出错

QML Quick C++程序中使用QMessageBox_c/c_02
这个意思很明显,QMessageBox实质上是一个QWidget,但是没有QApplication便不能创建。Quick项目默认使用的是QGuiApplication,它是QApplication的父类。
将main函数中的QGUIApplication改为QApplication,并且添加头文件即可。

#include<QApplication>

如此,成功弹出警告窗口
QML Quick C++程序中使用QMessageBox_c/c_03

3.总结

(1)pro文件中添加

QT+=widgets

(2)main.cpp中添加头文件

#include<QMessageBox>
#include<QApplication>

(3)main.cpp中,将QGuiApplication改为QApplication。
(4)main.cpp中,读取配置文件,对读取到的数据进行判断,不符合条件弹出提示框,间隔一段时间直接退出程序即可。

QMessageBox::critical(NULL, "critical", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);