qlabel上放置图片

lwenjie 2010-04-15 04:09:14
QLabel *labSEAL = new QLabel( );

QPixmap sealPixmap;

labSEAL->setPixmap( sealPixmap );

这样放置的图片会自适应大小,

现在想要做成这样的效果:高度不让他自适应大小,如果图片的宽度超过 labSEAL 的宽度,宽度自适应大小,高度也相应的缩小,就是让图片的宽度和高度的比例保持不变 该怎么做。。
...全文
1311 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulx 2012-09-24
  • 打赏
  • 举报
回复
谢谢,我也是在找个,正解~
lwenjie 2010-04-19
  • 打赏
  • 举报
回复
问题解决了
KeepAspectRatio 保持宽高的比例不变 。。

难道是我没有表达清楚??

sealPixmap= sealPixmap.scaled(160,160,Qt::KeepAspectRatio);
labSEAL->setPixmap( sealPixmap );

  • 打赏
  • 举报
回复
感觉可能要重载函数了...这个要求确实少见
hailei0526 2010-04-16
  • 打赏
  • 举报
回复
重载一个QLable类,然后重新定义其resizeEvent(QResizeEvent *event);
函数。
void QLable(你继承的类名称)::resizeEvent(QResizeEvent *event)
{
QLable::resizeEvent(event);
QPalette pal(palette);
pal.setBrush(你的QImage对象.scaled(event->size(),Qt::IgnoreAspectRadio,Qt::smoothTransformation)));
setPalette(pal);
}

楼主可以试试看这个方法可行不可行,有问题咱们再沟通!
lwenjie 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 up0826 的回复:]
是要在拖拽中使用吗?如果拖拽的话,可以加入事件机制,在事件处理函数中进行判断吧
[/Quote]

不是拖曳的 label的size已经确定
图片的大小不确定 有的图片大 有的图片小
图片是从其它地方获得
sealPixmap.loadFromData( rawSeal.imagedata.value(), rawSeal.imagedata.size() )
火箭猫 2010-04-16
  • 打赏
  • 举报
回复
是要在拖拽中使用吗?如果拖拽的话,可以加入事件机制,在事件处理函数中进行判断吧
lwenjie 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 benbenmajia 的回复:]
是有这样的需求还是你自己随便想的?自适应大小,lable的size确定吗?
[/Quote]

lable的size确定 要放上去的图片的大小不确定
  • 打赏
  • 举报
回复
获取图片的size后再相应的设置一个label?
benbenmajia 2010-04-16
  • 打赏
  • 举报
回复
是有这样的需求还是你自己随便想的?自适应大小,lable的size确定吗?
lwenjie 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tingsking18 的回复:]
怎么会是这样的需求?
有点bt
是不是可以通过别的方法绕过?
[/Quote]

别的有哪些方法
lwenjie 2010-04-15
  • 打赏
  • 举报
回复
这个有没有相应的属性设置
tingsking18 2010-04-15
  • 打赏
  • 举报
回复
怎么会是这样的需求?
有点bt
是不是可以通过别的方法绕过?
lwenjie 2010-04-15
  • 打赏
  • 举报
回复
图片是从其他地方取出来的
sealPixmap.loadFromData( rawSeal.imagedata.value(), rawSeal.imagedata.size() )

16,211

社区成员

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

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