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

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

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

【问题讨论】:

    标签: c++ qt qtableview


    【解决方案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
    • 可以从键盘快捷键调用上下文菜单,因此光标位置并不总是正确的调用点。
    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多