You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将QListWidget的setText显示位置调整到图标上方

解决QListWidget文本显示在图标上方的方案

要实现文本从图标右侧移动到图标上方的布局,无需自定义复杂控件,仅需要对QListWidget的视图参数做少量调整即可,修改后的完整代码如下:

from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QListView, QListWidgetItem

# 核心配置修改
# 1. 切换到图标视图模式,只有该模式支持调整文本和图标的相对位置
video_thumbnail.setViewMode(QListView.IconMode)
# 2. 设置文本对齐到图标上方居中
video_thumbnail.setItemTextAlignment(Qt.AlignTop | Qt.AlignHCenter)
# 3. 保持原有横向排列的流布局
video_thumbnail.setFlow(QListView.LeftToRight)
# 4. 设置网格尺寸,根据你的图标大小调整,预留出文本显示的高度避免挤压
video_thumbnail.setGridSize(QSize(140, 160))
# 可选:固定项的位置,禁止拖拽移动
video_thumbnail.setMovement(QListView.Static)

# 原有逻辑保持不变
video_thumbnail.setIconSize(QSize(128, 128))
for i in range(30):
    it = QListWidgetItem()
    it.setIcon(QIcon('test3.png'))
    it.setText(str(i))
    video_thumbnail.addItem(it)

参数说明

  • setViewMode(QListView.IconMode):默认的列表模式固定为图标左、文本右的布局,切换到图标模式后才支持调整文本和图标的相对位置
  • setItemTextAlignment:用来控制文本相对于图标的对齐方向,AlignTop即可实现文本显示在图标上方
  • setGridSize:根据你的图标尺寸和文本长度调整,保证项与项之间不会出现重叠、排版错乱的问题

内容的提问来源于stack exchange,提问作者Nikki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:42:02