在QListWidget中可以高亮多个行吗?(Python/PyQt)

0 投票
1 回答
1839 浏览
提问于 2025-04-18 03:10

我在想,能不能在一个 QListWidget 中同时 高亮 多行(不是用 setSelectedRow 或者选择多行)……如果可以的话,我该怎么做呢?

1 个回答

1

在listWidget中,有很多方法可以让列表中的项目变得更显眼。你可以设置背景颜色、前景颜色,或者完全改变项目的字体来突出显示它们。

设置前景颜色:

for item in listWidget.selectedItems():
    item.setForeground(QBrush(Qt.green, Qt.SolidPattern))

设置背景颜色:

for item in listWidget.selectedItems():
    item.setBackground(QBrush(Qt.yellow, Qt.SolidPattern))

或者改变项目的字体:

font = QFont('', -1, QFont.Bold, True)
for item in listWidget.selectedItems():
    item.setFont(font)

空字符串代表默认的字体,-1代表默认的字体大小,最后通过把最后一个参数设置为True来让字体变得粗体斜体。如果你不想要粗体,可以用-1代替QFont.Bold

撰写回答