Qt5-右键菜单

win.h

#ifndef WIN_H
#define WIN_H

#include <QWidget>
#include <QContextMenuEvent>  //用于产生右键事件
#include <QMenu>    //用于生成右键菜单
#include <QAction>  //用于添加菜单栏动作
#include <QCursor>  //用于获取当前光标位置
#include <QProcess> //用于启动记事本
#include <QDebug>
#include <QLabel>


class win : public QWidget
{
    Q_OBJECT

public:
    win(QWidget *parent = nullptr);
    ~win();

protected:
    void contextMenuEvent(QContextMenuEvent *event);

private slots:
    //void on_newScreenShotButton_clicked();
    //void shotScreenSlot();
    void saveScreenSlot(); //保存截图
    void startNotepadSlot(); //启动记事本

private:
    QLabel* label;

};
#endif // WIN_H

win.cpp

#include "win.h"

win::win(QWidget *parent)
    : QWidget(parent)
{
    this->resize(400,300);
    label=new QLabel("右击事件",this);

}

win::~win()
{
}

void win::contextMenuEvent(QContextMenuEvent *event)  //右键事件
{
    QMenu *menu= new QMenu(this); //创建菜单
    QAction *action =new QAction(this); //创建动作
    QAction *processAction =new QAction(this);
    connect(action,SIGNAL(triggered()),this,SLOT(saveScreenSlot()));
    //点击action动作时,调用saveScreenSlot()槽函数
    connect(processAction,SIGNAL(triggered()),this,SLOT(startNotepadSlot()));
    //点击processAction动作时,调用startNotepadSlot()槽函数
    action->setText("另存为");//给动作设置文本
    processAction->setText("启动记事本");
    menu->addAction(action); //把动作添加到菜单
    menu->addSeparator();//添加分割线
    menu->addAction(processAction);
    menu->exec(QCursor::pos()); //在光标当前位置处出现

}

void win::saveScreenSlot()//保存截图槽函数
{
    qDebug()<<"保存为......";
}

void win::startNotepadSlot()  //启动记事本槽函数
{
    QProcess *process =new QProcess;
    process->start("notepad");
}

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值