我建议你可以在程序中加一个命令行参数,带了该参数的程序是gui程序,弹出菜单供用户选择,不带该参数的时候是console程序,这样,你在运行时需要“选择对话框”时,用system或者qprocess的方法加参数调用自身,两个实例之间可以通过命名管道或者共享内存之类的通信,获取用户选择的结果。
int main(int argc, char* argv[])
{
if (argc ==2 && strcmp(argv[1], "--gui") == 0)
{
QApplication app(argc, argv);
......
}
else
{
QCoreApplication app(argc, argv);
......
}
return 0;
}