paip.提升用户体验---c++  右键菜单以及socket接口

作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.csdn.net/attilax

主要流程:
a.实现contextMenuEvent方法.当在window上右击时,自动调用这个方法...用来显示菜单..
b.on_actionClear_triggered 用来触发事件操作.
c.eventFilter用来区分左右的鼠标键..当右键点击菜单条款时候不反应,只能左的键有效.....
d.注意事项..
按道理 if (qApp->mouseButtons() == Qt::LeftButton)这个可以区分了.实际上不行..
按道理   // act->installEventFilter( this ); 不个过滤器加的个QAction上走行。。实际上要加的个menu上了.
e.只是实现孪api接口..还有个.http接口,js接口..腰实现了..

源码下列的:

void FormWdg::contextMenuEvent(QContextMenuEvent * event)

{
//show menu
    QCursor cur=this->cursor();

QMenu *menu=new QMenu(this);
  menu->installEventFilter( this );
 QIcon myIcon("d:\\icon.jpg");
 //Act_Maxsize->setIcon(QIcon("Resources/logo.png"));

QAction *act =   menu->addAction(myIcon,tr("删除"));
      // act->installEventFilter( this );

connect(act,SIGNAL(triggered()),this,SLOT(on_actionClear_triggered( )));
  menu->addSeparator();
    menu->addAction(tr("新建"));

menu->exec(cur.pos());
    //menu->exec(event->globalPos());

}

void   FormWdg::on_actionClear_triggered(  ){
     qDebug()<<"---on_actionClear_triggered---";
     qDebug()<<(qApp->mouseButtons() == Qt::LeftButton);
     //qDebug()<<qApp->mouseButtons().enum_type;
    // qDebug()<<Qt::MouseButtons

if (qApp->mouseButtons() == Qt::LeftButton)
     {
   //  qApp->mouseButtons() ==
         QMessageBox::about(NULL, "About", "LeftButton click");
         return; }
     if (qApp->mouseButtons() == Qt::RightButton)
     {
         QMessageBox::about(NULL, "About", "RightButton click");
         return;
     }
     QMessageBox::about(NULL, "About", "no check");
     return;
//QMessageBox::about(NULL, "About", "About this <font color='red'>application</font>");

}
 
 
 
 bool FormWdg::eventFilter(QObject *obj, QEvent *event)
{
  //  qDebug()<<"---eventFilter  >> eventFilter---";
    QMouseEvent *msEvt=static_cast<QMouseEvent *>(event);
    if(msEvt->type()==QEvent::MouseButtonPress)
    {
             qDebug()<<"---eventFilter  >> MouseButtonPress---";
                 if(msEvt->button() == Qt::LeftButton)
                 {
                        qDebug()<<"---eventFilter  >> LeftButton check---";
                     //   return TRUE; // 吃掉了这个事件
                 }
                 if(msEvt->button() == Qt::RightButton                 )
                 {
                        qDebug()<<"---eventFilter  >> RightButton check---";
                     //   return TRUE; // 吃掉了这个事件
                 }
    }

}

参考:
初识Qt Object 类(3) - 51CTO.COM.htm
Qt?安装事件过滤器installEventFilter_kunyuan_新浪博客.htm
Qt eventFilter无法过滤mouse事件 - 学无止境 - 博客频道 - CSDN.NET.htm
Qt 鼠标专题 - 豆丁网.htm
Qt QWidget添加右键菜单 - 坐看云起的日志 - 网易博客.htm
QT 创建鼠标右键菜单 - 开源中国社区.htm
【转】QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介(持续添加更新中...)_龙腾9吴天的空间_百度空间.htm
qt trigger - neverland的日志 - 网易博客.htm
qt的右键扩展,继承contextMenuEvent - 新闻中心 - 赛迪网.htm
Qt学习之路(13)  菜单和工具条(续) - 豆子空间 - 51CTO技术博客.htm
Qt学习之路(20)  事件接收与忽略 - 豆子空间 - 51CTO技术博客.htm

paip.提升用户体验---c++ 右键菜单以及socket接口相关推荐

  1. paip.提升用户体验--提升java的热部署热更新能力

    paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力  "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应 ...

  2. 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验

    ​ 一款优秀的开发工具,在更新迭代中,除了要满足不同场景的业务需求,也需不断优化已有功能,尤其是细节方面,要能为用户带来使用体验和开发效率的提升. 作为一款备受业界专家和开发者认可的纯前端类Excel ...

  3. APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?

    随着软件开发技术的不断发展和完善,有众多同类选择的APP用户越来越挑剔,单单拼功能拼硬件已经不足以捕获用户芳心.在APP使用过程中,大部分用户无意识地培养出了对使用体验的重视感.这警醒企业,只盯着为用 ...

  4. 描点链接元素的优化提升用户体验

    用一些大网站的时候,发现有一个很细节的共同点:点击链接元素的时候,链接元素会产生一个明显的边框,而且这个边框的颜色和#f27b04很接近,我觉得既然很多大网站都这么做,这其中肯定有一些用户体验方面的东 ...

  5. 网络营销外包——网络营销外包专员浅析提升用户体验从哪入手?

    众所周知,在网站运营期间,网站跳出率的高低直接反映出用户对网站喜爱与否,也是检测网站性能是否丝滑的关键点,如果网站跳出率越高就证明用户体验越差,搜索引擎也不会更加注重抓取该网站.那么如果提高用户体验, ...

  6. 使用渐进式JPEG来提升用户体验

    今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式).两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别 ...

  7. android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点

    原标题:提升用户体验 可升Android 6.0机型盘点 [手机中国 导购]2009年Android系统正式发布,由此加速手机走向智能化进度.如今,随着Android系统日渐成熟,众多手机厂商都在此基 ...

  8. electron加载html加载不起来,Electron 预加载远程页面提升用户体验

    使用场景 Electron 内置 Chromium 和 Node.js,为了提升用户体验,通常 Electron 封装的前端静态文件存储在客户端本地.但总有一些特殊情况,会使用到部分远程页面. 比如微 ...

  9. 三星电子中国研究院院长张代君:Bixby绝非炫技而是为提升用户体验而生

    近日,三星正式对外发布旗下人工智能平台Bixby中文(普通话)版.与其他语音助手截然不同,Bixby包含语音.视觉.主页.提醒四大功能,可为用户提供多模交互体验.此外,Bixby还可以不断学习用户的使 ...

  10. 客户体验是什么?如何提升用户体验从而提高产品成单率?必读!

    近年来,"客户体验"成了一个很常用的词,但实际上很多人都无法给到一明确定义,尽管许多企业都将改进客户体验视为一项差异化的竞争优势.可是,如果连某种东西的定义都说不清楚,又如何谈得上 ...

最新文章

  1. 7-2 然后是几点 (C语言)
  2. 2021年大数据研究中心支持项目交流会成功举行
  3. C#------Entity Framework6的T4模板的使用
  4. 画架构图的软件_程序员为什么要学会画技术架构图?
  5. 用shell脚本实现定时备份数据库
  6. Kotlin实战指南八:高阶函数
  7. php中数组的数组元素最多出现2次,出现3次了就把第三次的数组元素去掉
  8. vue 移动到图片浮动_基于Vue实现图片在指定区域内移动
  9. 大离谱!论文“撞衫”,11篇不同高校论文中竟出现同一块桌布....
  10. linux-文件类型与查看文件型
  11. 大数据之-Hadoop源码编译_编译hadoop源码前_需要准备的软件_以及编译步骤---大数据之hadoop工作笔记0045
  12. GridView表头排序方法设置
  13. 叶子的离开,是因为风的追求,还是树的不挽留
  14. readelf命令解析及演示
  15. Java 关于CoolProp的调用
  16. android5.1 xposed,Xposed框架oppo下载
  17. TMS320F28335的特点
  18. callmode php_phper必须了解的php常识
  19. linux系统中lib,lib-dev,lib-dbg库的区别
  20. thinkpad T480安装WIN7系统NVM固态硬盘+INTEL HD620显卡

热门文章

  1. Lync 小技巧-8-超速-更新-地址簿
  2. linux c 笔记 线程控制(一)
  3. Mybatis-第N篇配置log4j1、log4j2打印执行的sql语句
  4. LeetCode 169 Majority Element 解题报告
  5. Linux命令行报错 bash: cannot create temp file for here-document: No space left on device
  6. 【金蝶K3Cloud】 Python套打插件开发记录
  7. CF989C A Mist of Florescence
  8. 剑指offer 面试63题
  9. BZOJ 1034: [ZJOI2008]泡泡堂BNB
  10. 初学Web 前端感受