📌  相关文章
📜  PyQt5 QListWidget – 设置水平滚动模式属性(1)

📅  最后修改于: 2023-12-03 15:18:49.026000             🧑  作者: Mango

PyQt5 QListWidget – 设置水平滚动模式属性

在PyQt5 QListWidget中,可以使用setHorizontalScrollMode()方法设置水平滚动模式属性,该属性决定了当item数量超过列表宽度时如何滚动。

语法
QListWidget.setHorizontalScrollMode(QAbstractItemView.ScrollMode)

参数:

  • QAbstractItemView.ScrollMode:水平滚动模式,是Qt中预定义的枚举之一,可能的值包括:

    • QAbstractItemView.ScrollPerItem: 一次滚动一个item(默认值)。

    • QAbstractItemView.ScrollPerPixel: 一次滚动长度由像素决定。

示例
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QVBoxLayout
 
class ListWidget(QListWidget):
 
    def __init__(self, parent=None):
        super().__init__(parent)
 
        self.addItem("Item 1")
        self.addItem("Item 2" * 10)  # 一个很长的item
        self.addItem("Item 3")
        self.addItem("Item 4" * 10)  # 一个很长的item
        self.addItem("Item 5")
 
        self.setHorizontalScrollMode(QListWidget.ScrollPerPixel)
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = ListWidget()
    w.show()
    sys.exit(app.exec_())

运行上面的示例代码将会得到一个QListWidget,其中包括5个item,其中item 2和item 4非常长,当窗口缩小时,你可以看到当我们使用setHorizontalScrollMode()方法设置属性为QListWidget.ScrollPerPixel时,滚动条滚动的是像素而不是item。此时通过滚动条,你可以挪动任何距离。

这就是PyQt5 QListWidget的setHorizontalScrollMode()方法的使用技巧。

注意: 一个QListWidget中可能会包括许多item,这时当设置setHorizontalScrollMode()方法属性为QListWidget.ScrollPerPixel时,可能会因为许多item导致滚动条非常满,不要为了让每个item都可以挪动而强制设置此属性。