如何将 QListWidget 滚动到所选项目
How to scroll QListWidget to selected item
下面的代码使用 QListWidget
和 QPushButton
创建一个对话框 window。
单击该按钮会启动一个 scroll()
函数,该函数会查找并选择一个 "ITEM-0011"。
我想知道是否有办法滚动列表小部件,使选定的 ITEM-0011
位于 QListWidget
的顶部边缘?最终结果应该是这样的:
from PyQt4 import QtCore, QtGui
app=QtGui.QApplication([])
def scroll():
item = listWidget.findItems('ITEM-0011', QtCore.Qt.MatchRegExp)[0]
item.setSelected(True)
window = QtGui.QDialog()
window.setLayout(QtGui.QVBoxLayout())
listWidget = QtGui.QListWidget()
window.layout().addWidget(listWidget)
for i in range(100):
QtGui.QListWidgetItem('ITEM-%04d'%i, listWidget)
btn = QtGui.QPushButton('Scroll')
btn.clicked.connect(scroll)
window.layout().addWidget(btn)
window.show()
app.exec_()
列表小部件有一个 scrollToItem method that will scroll an item to a specific position:
def scroll():
item = listWidget.findItems('ITEM-0011', QtCore.Qt.MatchRegExp)[0]
item.setSelected(True)
listWidget.scrollToItem(item, QtGui.QAbstractItemView.PositionAtTop)
下面的代码使用 QListWidget
和 QPushButton
创建一个对话框 window。
单击该按钮会启动一个 scroll()
函数,该函数会查找并选择一个 "ITEM-0011"。
我想知道是否有办法滚动列表小部件,使选定的 ITEM-0011
位于 QListWidget
的顶部边缘?最终结果应该是这样的:
from PyQt4 import QtCore, QtGui
app=QtGui.QApplication([])
def scroll():
item = listWidget.findItems('ITEM-0011', QtCore.Qt.MatchRegExp)[0]
item.setSelected(True)
window = QtGui.QDialog()
window.setLayout(QtGui.QVBoxLayout())
listWidget = QtGui.QListWidget()
window.layout().addWidget(listWidget)
for i in range(100):
QtGui.QListWidgetItem('ITEM-%04d'%i, listWidget)
btn = QtGui.QPushButton('Scroll')
btn.clicked.connect(scroll)
window.layout().addWidget(btn)
window.show()
app.exec_()
列表小部件有一个 scrollToItem method that will scroll an item to a specific position:
def scroll():
item = listWidget.findItems('ITEM-0011', QtCore.Qt.MatchRegExp)[0]
item.setSelected(True)
listWidget.scrollToItem(item, QtGui.QAbstractItemView.PositionAtTop)