小工具知识网

当前位置: 首页 > 行业知识 > Qt设置右键菜单无效customContextMenuRequested(const QPoint &pos)

行业知识

Qt设置右键菜单无效customContextMenuRequested(const QPoint &pos)

2026-11-15 01:22:43 来源:互联网转载

问题代index.php/tags-41973.html" >���:

()
void MainWindow::onCustomContextMenuRequested(const QPoint &pos){    QTreeWidgetItem *item = ui->treeWidget->itemAt(pos);    if (item)    {        QMenu menu(ui->treeWidget);        TreeNodeType nodeType = (TreeNodeType)item->data(0, Qt::UserRole + 1).toInt();        if (nodeType == NODE_CONNECTION)        {            QAction actionOpen("打开连接", ui->treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);            QAction actionModify("编辑连接", ui->treeWidget);            connect(&actionModify, &QAction::triggered, this, &MainWindow::onModifyConnectionTriggered);            menu.addAction(&actionModify);        }        else if (nodeType == NODE_DATABASE)        {            qDebug() treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);        }        else if (nodeType == NODE_TABLE)        {            qDebug() treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);        }        qDebug() treeWidget->itemAt(pos);    if (item)    {        TreeNodeType nodeType = (TreeNodeType)item->data(0, Qt::UserRole + 1).toInt();        if (nodeType == NODE_CONNECTION)        {            QMenu menu(ui->treeWidget);            QAction actionOpen("打开连接", ui->treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);            QAction actionModify("编辑连接", ui->treeWidget);            connect(&actionModify, &QAction::triggered, this, &MainWindow::onModifyConnectionTriggered);            menu.addAction(&actionModify);            menu.exec(QCursor::pos());        }        else if (nodeType == NODE_DATABASE)        {            QMenu menu(ui->treeWidget);            qDebug() treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);            menu.exec(QCursor::pos());        }        else if (nodeType == NODE_TABLE)        {            QMenu menu(ui->treeWidget);            qDebug() treeWidget);            connect(&actionOpen, &QAction::triggered, this, &MainWindow::onOpenConnectionTriggered);            menu.addAction(&actionOpen);            menu.exec(QCursor::pos());        }    }}

再次运行,果然没问题了,又学到了。

()

上一篇:已经买了腾讯云服务器怎么用

下一篇:java怎么进入别的服务器?