在用PYQT的时候做了一个QListview,简单来说就想实现一个单击列表,然后打印当前选项坐在的行位置,这么一个功能。一开始用了一个比较粗暴的方式。
1.利用listview的click以及doubleclicked两个信号
这两个信号都可以返回点击的位置所在的行数,但是我想要右键显示的时候就失效了,不是正道。
self,my_list.clicked.connect(self.clicked) #这是信号连接
def doubleclicked(self, qModelIndex):
list_num = qModelIndex.row() #这个值就是所选的列表值
2.然后查各种资料发现一个老哥写的真的好,一下子就理清了
一看是我就想在列表的右击事件里面写,但是官网查的两个函数currentIndex()和selectedIndexes()打印出来总是:
[<PyQt5.QtCore.QModelIndex object at 0x000001C5E879EBA8>]
这个个东西,现在我才知道这个其实就是一个qt的列表啊。
def contextMenuEvent(self, evt):#连接菜单事件
# print(self.selectedIndexes())
menu = QMenu(self)
num = self.currentIndex()
print(type(num))
item = num.row()
print(item)
就是要在后面加上.row()表示这一行的所有值。因为我这个列表只有一列,所以直接就打印出来了。