QListWidget改变Item项中图片位置(居中)

本文介绍如何在QListWidget中将图片居中显示,同时调整文本位置。在显示拍摄图片的缩略图列表时,通过在QListWidgetItem的Icon中调整大小和位置,实现图像在中间,文字在底部的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QListWidget提供一个基于item的列表控件,当前我是用来显示拍摄图片后的缩略图列表,虽然QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = Q_NULLPTR, int type = Type)已经提供带Icon与Text的构造函数,但是对于icon的显示位置却没有合适的方法来调整,比如以下这种(缩略图大小是固定的):

此时图片的位置是在上方的,而我想要的效果是图像显示在中间,文字显示在底部,每个item应该都这样的。可问题是在固定的缩略图大小下,计算出来的显示图像默认在上方,而文本区域则占用了剩下所有空间,无法在Item中设置文本区域占用的大小与调整图像显示的位置。

如果在item项中无法直接调整图像的位置的话,可以考虑在Icon中调整大小与位置,即在Icon中绘制出想要定义的显示区域,比如:

    QPixmap src = QPixmap(thumbnailSize);
    QPainter painter(&src);
    painter.fillRect(src.rect(), QColor(0,0,0));
    painter.drawPixmap(startP, selectedImg);

    QIcon icon;
    icon.addPixmap(src);

固定好Icon的大小后可以自由绘制图像区域,想显示在哪都行,而文本区域的大小也可以调整:

    QSize size = QSize(thumbnailSize.width(), thumbnailSize.height()+16);
    item->setSi
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值