QT label上显示图片的问题。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT label上显示图片的问题。相关的知识,希望对你有一定的参考价值。
我在做一个嵌入式QT小界面,想在一个label上显示一个图片:
QPixmap pixmap("dqsy.jpg");
label = new QLabel(this);
label->setMinimumSize(250,40);
label->setMaximumSize(250,40);
label->setPixmap(pixmap);
hbox1->addWidget(label);
可是显示出来的就是一片空白,哪里出问题了呢?
图片和工程文件都在一个文件夹下。
border-radius: 4px;
padding: 2px;
background-image: url(images/xxx.png);
请确认一下你的 style sheet 代码是不是与上面类似的(主要看最后一行);
如果你改变了图片或者qrc文件中的内容,最好将整个工程重新都重新编译一次。再看能不能显示图片。如果还不能显示图片,就直接用QLabel的
void setPixmap ( const QPixmap & )
方法来设置图片算了。 参考技术A 你先把图片用图像处理工具(photoshops等)转换成png格式,再把这个图片添加为工程资源(就是Resource file),再试一下。
另外,你用的什么开发工具?如果是Qt creator的话,直接用ui多快啊,还方便。 参考技术B 是不是你的label大小设置有问题呢 把sizepolicy改成expanding看看吧 参考技术C 不是很清楚 不过label不能作为一个容器装载一个图片吧 可以用fixed之类的容器试一下不
QT如何使用scrollarea和Label(或者TextEdit)显示很多的内容
会调用scrollarea窗口显示图片,窗口大小能根据图片大小自动调整,但是最大为1024*768,图片过大就要有滚动条来显示mainwindow中点击“显示图片”调用scrollarea窗口,下面的函数是被一个按钮的槽函数调用的
void MainWindow::Show_Image_byname(char *filename)
if(!filename || !strlen(filename))
return;
char buf[128]= 0;
strcpy(buf,SAVE_IMAGE);
strcat(buf,filename);
ScrollArea *new_image = new ScrollArea();
new_image->set_image(buf);
new_image->setBackgroundRole(QPalette::Dark);
new_image->show();
return;
添加文件scrollarea.ui文件,画出一个scrollarea
在生成的scrollarea.h中添加私有成员QLabel
private:
Ui::ScrollArea *ui;
QLabel * label;
在析构函数中添加内存释放
ScrollArea::~ScrollArea()
delete ui;
if(label)
delete label;
在生成的scrollarea.cpp中添加图片显示实现函数
void ScrollArea::set_image(char *filename)
QImage *ppm = new QImage(filename);
label = new QLabel();
printf("ppm->width()=%d, ppm->height()=%d\n",ppm->width(), ppm->height()); //获取图片的宽度和高度
label->setPixmap(QPixmap::fromImage(*ppm));
this->setWidget(label);
/*设置窗口最大高度和宽度为1024*768*/
this->setMaximumHeight(768);
this->setMaximumWidth(1024);
this->resize(QSize( ppm->width()+5, ppm->height() +5));
return;
参考技术A 你可以使用Scroll Area,即可满足你需要的组合效果,即显示更多内容
以上是关于QT label上显示图片的问题。的主要内容,如果未能解决你的问题,请参考以下文章