代码之家  ›  专栏  ›  技术社区  ›  Piotr Byzia

QT:QTableWidget的上下文菜单(QMenu)引用

  •  0
  • Piotr Byzia  · 技术社区  · 16 年前

    self.widget_alignment.setContextMenuPolicy(Qt.ActionsContextMenu)
    

    widget\u对齐在哪里 .

    我创建了一个新的QMenu实例:

    exchange_bases_menu = QMenu(self.widget_alignment)
    

    添加了一些操作,我找到了一个方法 QAction QMenu.addMenu (self, QMenu menu)

    但是我没有看到任何关于self.widget\u对齐的默认上下文菜单的引用。

    self.widget_alignment.addMenu(exchange_bases_menu)
    

    给了我:QTableWidget对象没有属性addMenu。

    如何将子菜单添加到默认关联菜单?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Caleb Huitt - cjhuitt    16 年前

    根据文件,当 QWidget 设置为具有操作上下文菜单类型,小部件将基于为小部件设置的操作列表构造上下文菜单。要修改操作列表,可以调用 addAction insertAction removeAction . 因此,我希望您可以这样做(在C++中):

    QAction *act_p = new QAction( "Has Submenu", widget_alignment );
    QMenu *submenu_p = new QMenu( act_p );
    // Add items to the submenu
    act_p->setMenu( submenu_p );
    widget_alignment->addAction( act_p );
    

        2
  •  0
  •   Vicken Simonian    16 年前

    在MouseReleaseEvent中使用QMenu的popup()怎么样?

    if (pEvent->button() == Qt::RightButton)
    {
        QMenu menu;
        menu.addAction(action1);
        menu.addAction(action2);
        menu.popup(pEvent->globalPos(),action1);
    }