如何获取 QTableView 右键单击??索引
- 作者: Arpat-
- 来源: 51数据库
- 2022-12-22
问题描述
下面的代码创建了一个带有 QTableView 视图的对话框.左键单击 onLeftClick 函数会获得一个 QModelIndex index.此 QModelIndex 稍后用于打印左键单击单元格的行号和列号.
The code below creates a single dialog with a QTableView view. On left-click the onLeftClickfunction gets an QModelIndex index. This QModelIndex is used later to print the row and column numbers of the left-clicked cell.
如何获取被右键单击的单元格的QModelIndex索引?
How to get the QModelIndex index of the cell that was right-clicked?
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
app = QApplication([])
class Dialog(QDialog):
def __init__(self, parent=None):
super(Dialog, self).__init__(parent)
self.setLayout(QVBoxLayout())
self.view = QTableView(self)
self.view.setSelectionBehavior(QTableWidget.SelectRows)
self.view.setContextMenuPolicy(Qt.CustomContextMenu)
self.view.customContextMenuRequested.connect(self.onRightClick)
self.view.clicked.connect(self.onLeftClick)
self.view.setModel(QStandardItemModel(4, 4))
for each in [(row, col, QStandardItem('item %s_%s' % (row, col))) for row in range(4) for col in range(4)]:
self.view.model().setItem(*each)
self.layout().addWidget(self.view)
self.resize(500, 250)
self.show()
def onRightClick(self, qPoint):
sender = self.sender()
for index in self.view.selectedIndexes():
print 'onRightClick selected index.row: %s, selected index.column: %s' % (index.row(), index.column())
def onLeftClick(self, index):
print 'onClick index.row: %s, index.row: %s' % (index.row(), index.column())
dialog = Dialog()
app.exec_()
推荐答案
你必须使用 QAbstractScrollArea (QTableView 的 indexAt() 方法代码>):
You have to use the indexAt() method of the QAbstractScrollArea (QTableView):
def onRightClick(self, qPoint):
index = self.view.indexAt(qPoint)
if index.isValid():
print('onClick index.row: %s, index.col: %s' % (index.row(), index.column()))
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
