整个项目包括ToolPrj和MainFramePrj两个工程,其中ToolPrj被编译为DLL文件,以供MainFramePrj调用,MainFramePrj为主框架工程。现在想在ToolPrj中的某个类的函数中实现创建主窗体的子对话框,代码如下:
void AddDataCommand::ShowWarning(QString warnmsg)
{
QMessageBox::warn(G_MainWin, qr("Warn"), warnmsg, ......); //G_MainWin是ToolPrj中的一个全局变量,其值为主框架窗口的指针,AddDataCommand为在ToolPrj 中的一个类,在主框架下被实例化
}
程序运行时,提示错误: Must construct a QApplication before a QPaintDevice
如果在函数中加入QApplication,感觉这样的设计比较怪,而且还会出现:ASSERT failure in QCoreApplication::sendEvent的错误。
不知道这个问题怎么解决。