在 Qt 中为 QTableView 创建弹出菜单

Posted

技术标签:

【中文标题】在 Qt 中为 QTableView 创建弹出菜单【英文标题】:Creating popup menu in Qt for QTableView 【发布时间】:2009-04-12 07:57:11 【问题描述】:

我的程序主 UI 中有一个QTableView。我想在用户右键单击表格的单元格时显示弹出菜单,并在从菜单中选择一个选项时采取适当的操作。

我正在使用 Qt Creator 1(Qt 版本 4.5)。我该怎么做?

【问题讨论】:

【参考方案1】:

查看customContextMenuRequested 信号以获取事件,并为菜单本身使用QMenu。使用QTableView::indexAt 根据给定信号的坐标找出单击了哪些单元格(如果有),并在单击菜单项时采取适当的操作。

【讨论】:

你需要调用 menu.exec(const QPoint&) 来显示它。确保将其转换为适当的坐标:menu.exec(mapToGlobal(point), 0) 或者直接使用 menu.exec(QCursor::pos()) doc.trolltech.com/latest/qmenu.html#exec 可以从键盘快捷键调用上下文菜单,因此光标位置并不总是正确的调用点。

以上是关于在 Qt 中为 QTableView 创建弹出菜单的主要内容,如果未能解决你的问题,请参考以下文章

Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式

QTableView 标题菜单位置

Qt4:未捕获 QTableView 鼠标按钮事件

Qt/QTableView/SQLite如何连接?

QT QTableView控件 实时刷新显示

Qt模型/视图和QTableView的基本概念