如何将 QListWidget 滚动到所选项目 [英] How to scroll QListWidget to selected item
本文介绍了如何将 QListWidget 滚动到所选项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面的代码使用QListWidget
和QPushButton
创建一个对话框窗口.单击该按钮会启动 scroll()
函数,该函数会查找并选择ITEM-0011".
The code below creates a single dialog window with QListWidget
and QPushButton
.
Clicking the button fires up a scroll()
function which finds and selects an "ITEM-0011".
我想知道是否有办法滚动列表小部件,使所选的 ITEM-0011
位于 QListWidget
的顶部边缘?下面是最终结果的样子:
I wonder if there is a way to scroll the list widget so the selected ITEM-0011
is at the top edge of QListWidget
? Here is how the end result should look like:
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_()
推荐答案
list-widget 有一个 scrollToItem 方法将项目滚动到 具体位置:
The list-widget has a 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 滚动到所选项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文