0
QListViewのdoubleclick itemとcontextmenuイベントをサブクラス化するにはどうすればいいですか?QListViewのdoubleclickとcontextmenuをサブクラス化する方法
私の場合、QListviewをサブクラス化したいと考えています。ユーザがdoubleclicksとitemをダブルクリックすると、ダブルクリックされたアイテムのデータ(表示役割のテキスト)が表示されます。
第2に、コンテキストメニューをQListViewにビルドしたいと思います。ユーザーが右クリックした場所を適切に表示する方法がわかりません。
class MyListView(QtGui.QListView):
def __init__(self, *args, **kwargs):
QtGui.QListView.__init__(self, *args, **kwargs)
self.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
self.setViewMode(QtGui.QListView.IconMode)
self.setResizeMode(QtGui.QListView.Adjust)
self.setMovement(QtGui.QListView.Static)
self.setSpacing(5)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
# self.customContextMenuRequested.connect(self.open_tags_list_menu)
self.setStyleSheet('''
QListView::item {
border: 1px solid rgba(0,0,0,60);
background: rgba(0,0,0,30);
border-radius: 2px;
}
QListView::item:selected {
border: 1px solid rgba(70,150,255,255);
background: rgba(70,150,255,200);
border-radius: 2px;
}
''')
self.act_delete_selected = QtGui.QAction('Delete Selected', self)
self.act_delete_all = QtGui.QAction('Delete All', self)
self.my_menu = QtGui.QMenu()
self.my_menu.addAction(self.act_delete_selected)
self.my_menu.addAction(self.act_delete_all)
def mouseDoubleClickEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
print 'text of item clickd'
QtGui.QListView.mouseDoubleClickEvent(self, event)
def onCustomContextMenuRequested(self, point):
print 'my_menu'