• 6500阅读
  • 6回复

请教win下qt编译后,运行没有界面(不是没显示的问题) [复制链接]

上一主题 下一主题
离线onstring
 

只看楼主 倒序阅读 楼主  发表于: 2008-12-21
— 本帖被 XChinux 执行加亮操作(2009-01-06) —
新手学习阶段,想用label显示一图片,如下
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QLabel *imageLabel = new QLabel();
    QPixmap pm("Image1.png");   
    imageLabel->setPixmap(pm) ;
    imageLabel->show();
    return a.exec();
}

但是编译完后,运行没有界面,任务管理器可以看到后台有该进程,但是没有应用程序
请教一下是什么问题,折腾半天了。。。。。多谢
离线wvins
只看该作者 1楼 发表于: 2008-12-21
你这个问题多半是图片没有正确的装载造成的。

使用全路径看看
还一个方式就是不要使用带图像的Label,直接
QLabel *lbl=new QLabel("TEST");
lbl->show();

另外,这样的代码正确么?
QLabel *imageLabel = new QLabel();

不是应该
QLabel *imageLabel = new QLabel;?
离线onstring

只看该作者 2楼 发表于: 2008-12-21
是的,如果显示不带图片的label是没问题的
但是看到很多参考都用label控件显示图片
不明白为什么我这个行不通

另外加括号应该也没问题吧
去掉括号重新编译了一次,还是老问题。。。。
离线lazybone
只看该作者 3楼 发表于: 2008-12-22
Label  只是个窗体部件,是否还需要个窗体容器,比如 QDialog,QWidget之类的用来显示
离线wvins
只看该作者 4楼 发表于: 2008-12-22
这个问题我遇到过,是可以直接显示图片的,我当时就是路径问题。
....
先把图片拷贝到c盘根目录下,
然后用全路径试试
QPixmap pm("c:\\Image1.png");    //这样做是为了避免复杂路径导致的装载失败,比如说空格,中文
如果这样没有问题,就是没写全路径的问题

然后你可以把它放到程序目录下,然后在试试
Understand?
离线lj_0212

只看该作者 5楼 发表于: 2008-12-22
还是使用资源机制吧,加个qrc文件。
离线onstring

只看该作者 6楼 发表于: 2008-12-22
引用第4楼wvins于2008-12-22 08:54发表的  :
这个问题我遇到过,是可以直接显示图片的,我当时就是路径问题。
....
先把图片拷贝到c盘根目录下,
然后用全路径试试
QPixmap pm("c:\Image1.png");    //这样做是为了避免复杂路径导致的装载失败,比如说空格,中文
.......


多谢wvins,的确是这个问题
之前用全路径试过,但是忘了双斜杠\\
留个教训啊。。。
快速回复
限100 字节
 
上一个 下一个