我是初学者,写了个测试程序,在控制台输入命令行打开这个程序,却没有图形化界面。请问,是什么原因?该如何解决?
main函数如下:
#include "mainwindow.h"
#include "mainwindow2.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
if(argv[1] == "a")
{
MainWindow w;
w.show();
}
else
{
mainwindow2 w2;
w2.show();
}
return a.exec();
}
------解决方案--------------------
你用Qt编译器,直接运行能出现图形化界面么?
如果能出现的话,那应该是你的
if(argv[1] == "a")
{
MainWindow w;
w.show();
}
else
{
mainwindow2 w2;
w2.show();
}
这块 mainwindow2 w2;
w2.show();这个有问题。你就可以这样测试下:
//if(argv[1] == "a")
//{
// MainWindow w;
// w.show();
// }
// else
// {
mainwindow2 w2;
w2.show();
// }
看这样有图形化界面没,应该是会没有的。
对了,你可以直接在Qt 编译器中以传命令行参数运行。

------解决方案--------------------
因为它们还没来得急显示,你就把它们干掉了!
知识点:C++ 变量的作用域和生存周期
------解决方案--------------------
另外,你这不叫Console程序,叫GUI程序
------解决方案--------------------
应该是这个原因
{
MainWindow w;
w.show();
}
出来花括号实例就注销了,自然窗口就消失了。
可以把变量定义放在花括号外面。