Qt之给控件添加右键菜单

一、设置控件

在对应控件的属性中,将contextMenuPolicy设置为CustomContextMenu

Qt之给控件添加右键菜单_第1张图片

二、添加槽函数

在对应控件上右键选择槽函数customContextMenuRequested(QPoint)

Qt之给控件添加右键菜单_第2张图片

三、在槽函数中添加右键菜单

在槽函数中输入如下代码,添加右键菜单。

Qt之给控件添加右键菜单_第3张图片

//右键菜单
void MainWindow::on_stackedWidget_customContextMenuRequested(const QPoint &pos)
{
    QMenu * menu = new QMenu(this);
    QAction *action = new QAction;
    action->setText(("适应窗口宽度"));
    connect(action, SIGNAL(triggered(bool)), this, SLOT(PageZoomToWidth()));
    menu->addAction(action);
    menu->exec(QCursor::pos());
}

通过connect函数链接右键的处理函数,如下图所示。

Qt之给控件添加右键菜单_第4张图片

//恢复到合适大小
void MainWindow::PageZoomToWidth()
{
    //*******************文件打开状态才响应*******************
    if (!pdf->hasOpenDocument()) {
        return;
    }

    pdf->zoomCentered(XpdfWidget::zoomToWidth);
}

四、头文件的处理

右键的处理函数需要作为slots,在头文件中定义

Qt之给控件添加右键菜单_第5张图片

你可能感兴趣的:(001QT桌面程序编程,qt,windows,开发语言)