Qt设置QLable的image

toliyuequn126com 2012-06-11 02:52:58
ui->label->setStyelSheet("image:url(:/1.png); border-image:url(:/2.png);");
为什么运行后image显示不出来,border-image显示正常。
但是在qtcreater中能正常显示,就是没有运行是,编译器中是可以显示image!
...全文
723 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjcapple 2015-01-21
  • 打赏
  • 举报
回复
路过帮顶,我也遇到这样的问题
问答小助手 2012-11-02
  • 打赏
  • 举报
回复
使用ui->label->setStyleSheet("background-image: url(:/1.png);");

或者:

QPixmap::QPixmap ( const QString & fileName, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor );
QLabel::setPixmap ( const QPixmap & );

QPixmap pix(":/1.png");
ui->label->setStyelSheet("border-image:url(:/2.png);");
ui->label->setPixmap(&pix);
xiebin133 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 7 楼 的回复:

qwidget* a = new qwidget();
qlabel* b = new qlabel(a);
b->setPixmap(pix);
qlabel* c = new qlabel(a);
c->setText(text);


我想只用一个label来实现。因为我写的程序有好多个这样的控件,要不定时不定个数刷新的,为了提高效率……
[/Quote]
这个和你用QPushButton刷新时差不多的,你刷新b就可以了,刷屏幕主要还是看大小,如果你整个屏幕一起刷新肯定慢,一个一个点刷新,相对而言速度要快很多。
toliyuequn126com 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

事实上自己画比原来的控件还能快点。
[/Quote]

试了 和用qpushbutton效果差不多,没什么改进。。。
我的arm板已经是128M的了,超频会不会快点?
tubo_true 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

刚试了一下,有两点:
首先就是设置同一个样式的话,比如都是设置图片的,会以第二个为准,也就是会设置你的border-image:url(:/2.png);

第二点,setStyelSheet设置样式表,好像没有image,我试了一下没有效果,貌似只有background-image和
border-image。

不知道楼主是要设置什么样的图片,看起来像是要不同的位置设置不同的图片……
[/Quote]

up
jdwx 2012-06-12
  • 打赏
  • 举报
回复
事实上自己画比原来的控件还能快点。
toliyuequn126com 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
现成的QLabel刷新不用重绘吗?
都要重绘。
[/Quote]

我试试。
jdwx 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 5 楼 的回复:

建议Lz 自绘QLabel。。。先绘制背景图,然后在是文字。。


这样子效率会高吗 ,因为我刷新的频率其实还是挺高的,那岂不是要不停的重绘控件,估计效率不会比用qpush
button高
[/Quote]
现成的QLabel刷新不用重绘吗?
都要重绘。
toliyuequn126com 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

建议Lz 自绘QLabel。。。先绘制背景图,然后在是文字。。
[/Quote]

这样子效率会高吗 ,因为我刷新的频率其实还是挺高的,那岂不是要不停的重绘控件,估计效率不会比用qpush
button高
toliyuequn126com 2012-06-12
  • 打赏
  • 举报
回复
这个怎么上图?
toliyuequn126com 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

qwidget* a = new qwidget();
qlabel* b = new qlabel(a);
b->setPixmap(pix);
qlabel* c = new qlabel(a);
c->setText(text);
[/Quote]

我想只用一个label来实现。因为我写的程序有好多个这样的控件,要不定时不定个数刷新的,为了提高效率。
我之前有qpushbutton直接就可以实现了(但是效率太低,刷新太慢有停顿),因为它有个icon属性,可直接设置,要的效果就是既有背景图,又有icon,还有文字,这3种属性都是可设置的,因为我在程序中要显示不同的状态。
xiebin133 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
qwidget* a = new qwidget();
qlabel* b = new qlabel(a);
b->setPixmap(pix);
qlabel* c = new qlabel(a);
c->setText(text);
[/Quote]
+1 ,不过其实 C 的父类传 b要更加好点。
wshn13 2012-06-11
  • 打赏
  • 举报
回复
qwidget* a = new qwidget();
qlabel* b = new qlabel(a);
b->setPixmap(pix);
qlabel* c = new qlabel(a);
c->setText(text);
jdwx 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

建议Lz 自绘QLabel。。。先绘制背景图,然后在是文字。。
[/Quote]
现成的QLabel只能显示文字或图片中的一个。
shen_wei 2012-06-11
  • 打赏
  • 举报
回复
建议Lz 自绘QLabel。。。先绘制背景图,然后在是文字。。
我是学友 2012-06-11
  • 打赏
  • 举报
回复
background-image就像电脑桌面的平铺,就是图片的尺寸不变,不足的地方图片继续循环出现
border-image就像电脑桌面的拉伸效果,这个一般就是常用的
你写的image我单独试了一下并没有效果出现
我是学友 2012-06-11
  • 打赏
  • 举报
回复
刚试了一下,有两点:
首先就是设置同一个样式的话,比如都是设置图片的,会以第二个为准,也就是会设置你的border-image:url(:/2.png);

第二点,setStyelSheet设置样式表,好像没有image,我试了一下没有效果,貌似只有background-image和
border-image。

不知道楼主是要设置什么样的图片,看起来像是要不同的位置设置不同的图片,可以考虑一下合成一张图

toliyuequn126com 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

QLabel->setPixmap ( const QPixmap & )
[/Quote]

这样就无法显示文字了
wshn13 2012-06-11
  • 打赏
  • 举报
回复
QLabel->setPixmap ( const QPixmap & )

16,199

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧