QT菜单之快捷菜单设计

打印 上一主题 下一主题

主题 1055|帖子 1055|积分 3165

        快捷菜单又称为上下文菜单,通常在用鼠标右击的时候弹出。创建快捷菜单的方法和创建菜单栏菜单类似。
效果图:
        

        一、将MainWindow类对象的ContextMenuPolicy属性设置为customContextMenu。
        打开mainWindow.ui,在属性视图上找到ContextMenuPolicy,并选择CustomContextMenu。
        

        二、创建菜单栏对象

        三、在mainwindow.ui界面鼠标右键选择”转到槽“,接着点击信号对应的CustomContextMenuRequested(QPoint),单击OK。然后编辑槽函数如下
        


  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent)
  4.     : QMainWindow(parent)
  5.     , ui(new Ui::MainWindow)
  6. {
  7.     ui->setupUi(this);
  8.     //一级菜单
  9.     menu1 = new QMenu(QString::fromUtf8("编辑"));
  10.     menu1->addAction(QString::fromUtf8("退出"));
  11.     menu1->addAction(QString::fromUtf8("选项"));
  12.     menu1->addAction(QString::fromUtf8("信息"));
  13.     //二级菜单1
  14.     menu2 = new QMenu(QString::fromUtf8("保存为"));
  15.     menu2->addAction(QString::fromUtf8("保存为图片"));
  16.     menu2->addAction(QString::fromUtf8("保存为视频"));
  17.     menu2->addAction(QString::fromUtf8("保存为文本文件"));
  18.     //二级菜单2
  19.     menu3 = new QMenu(QString::fromUtf8("工具栏"));
  20.     menu3->addAction(QString::fromUtf8("缩小"));
  21.     menu3->addAction(QString::fromUtf8("放大"));
  22.     menu3->addAction(QString::fromUtf8("插入"));
  23.     menu3->addAction(QString::fromUtf8("切换"));
  24.     //将二级菜单插入一级菜单栏中
  25.     menu1->addMenu(menu2);
  26.     menu1->addMenu(menu3);
  27.     //初始化为当前页面菜单栏
  28.     this->menuBar()->addMenu(menu1);
  29. }
  30. MainWindow::~MainWindow()
  31. {
  32.     delete ui;
  33. }
  34. //鼠标右键点击显示菜单
  35. void MainWindow::on_MainWindow_customContextMenuRequested(const QPoint &pos)
  36. {
  37.     menu1->exec(mapToGlobal(pos)); // 在鼠标点击位置显示菜单
  38. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表