2017-01-07 57 views
1

Код ниже создает одно диалоговое окно с QListWidget и QPushButton. Нажатие кнопки запускает функцию scroll(), которая находит и выбирает «ITEM-0011».Как прокрутить QListWidget к выбранному элементу

Интересно, есть ли способ прокрутки виджета списка, поэтому выбранный ITEM-0011 находится на верхнем краю QListWidget? Вот как конечный результат должен выглядеть следующим образом:

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

ли вы смотрите на docs для qlistwidget, прежде чем спрашивать об этом? – Schollii

ответ

1

Список-виджет имеет scrollToItem метод, который будет прокручивать элемент в specific position:

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

 Смежные вопросы

  • Нет связанных вопросов^_^