📅  最后修改于: 2023-12-03 15:18:49.026000             🧑  作者: Mango
在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都可以挪动而强制设置此属性。