zoukankan      html  css  js  c++  java
  • 如何在Qt的widget上右键显示菜单

    今天早上一来,我老大叫我在widget上点击右键加上一个菜单,并相应其响应的功能,因为我成刚接触Qt,所以看了下QtGUI编程这本书,做出来,记录下来,说不定哪天还用得上啊!

    废话不多说,直接上代码:

    方法一:

    m_text = QTextCodec::codecForLocale();

    ui->tableWidget->addAction(new QAction(m_text->toUnicode("设置为默认的服务器"), this));
    ui->tableWidget->setContextMenuPolicy(Qt::ActionsContextMenu);

    但是我在想,怎么响应菜单点击的选项那?如是就进行改写了,代码如下:

    //m_set_default和m_redraw是定义的QAction对象,定义为类的属性

    m_text = QTextCodec::codecForLocale();

    m_set_default = new QAction(m_text->toUnicode("设置为默认的服务器"), this);//新津活动
    m_redraw = new QAction(m_text->toUnicode("刷新"), this); //新建活动
    ui->tableWidget->addAction(m_set_default);//添加活动
    ui->tableWidget->addAction(m_redraw);//添加活动
    ui->tableWidget->setContextMenuPolicy(Qt::ActionsContextMenu);//使用Qt::CustomContextMenu。表示需要自己写出右键显示菜单 

    //响应刷新活动的信号和槽
    connect(m_redraw, SIGNAL(triggered()), this, SLOT(right_redraw()));

    之所以选择新建活动的方式而不用方法一的原因是为了方便建立信号和槽的关系,以便在槽中做出相应的处理,如上我是发出一个进行屏幕刷新的槽。

    Do one thing at a time,and do well.
  • 相关阅读:
    用ADO方式连接Excel
    RTX51 tiny系统容易混淆的问题
    学用NHibernate(一)
    Firefox兼容性
    使用WebClient后的Response编码的问题
    学用ASP.NET2.0
    安装CS2.0 Beta2 到SQL2005+Asp.Net2.0下
    AJAXSLT 的bug修正(2)
    Asp.Net开发小技巧
    URL重写,友好的URL
  • 原文地址:https://www.cnblogs.com/huiz/p/9610691.html
Copyright © 2011-2022 走看看