如何将QListWidget滚动到所选项目

2024-06-24 12:39:31 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码用QListWidgetQPushButton创建一个对话框窗口。 单击该按钮将启动scroll()函数,该函数查找并选择“ITEM-0011”。在

我想知道是否有一种方法可以滚动列表小部件,使选中的ITEM-0011位于{}的顶部边缘?最终结果如下:

enter image description here

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_()

Tags: 函数代码appwindowitemscrolllayoutqtgui
1条回答
网友
1楼 · 发布于 2024-06-24 12:39:31

list小部件有一个scrollToItem方法,它将一个项滚动到specific position

def scroll():
    item = listWidget.findItems('ITEM-0011', QtCore.Qt.MatchRegExp)[0]
    item.setSelected(True)
    listWidget.scrollToItem(item, QtGui.QAbstractItemView.PositionAtTop)

相关问题 更多 >