在同一个程序中
main.cpp
void createApplication()
{
int argc=1;
char **argv=NULL;
QApplication a(argc, argv);
QDialog _dlg;
_dlg.show();
a.exec();
return;
}
int main(int argc, char *argv[])
{
for (int iApp =0; iApp<10; iApp++)
{
createApplication();
qDebug()<<"Qt I Love YOU !";
}
return 0;
}
这么写是没有问题的
但是问题来了
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog _dlg;
_dlg.show();
a.exec();
qDebug()<<"Qt I Love YOU !";
int argc2=1;
char **argv2=NULL;
QApplication a2(argc2, argv2);
QDialog _dlg2;
_dlg2.show();
a2.exec();
qDebug()<<"Qt I Love YOU !";
return 0;
}
这样是有问题的 报错信息:
ASSERT failure in QCoreApplication: "there should be only one application object", file kernel\qcoreapplication.cpp, line 753