Qt QWidget右键菜单实例
2015-08-24 23:56
531 查看
1.新建工程mouseRightPressItemTest,选择QWidget作为界面。2.在widget.h中声明右键事件处理函数voidcontextMenuEvent(QContextMenuEvent*);为公有成员函数,并在widget.cpp中实现。voidWidget::contextMenuEvent(QContextMenuEvent*)//右键菜单项编辑
{
QCursorcur=this->cursor();
QMenu*menu=newQMenu(this);
menu->addAction(Act_Maxsize);//添加菜单项1
menu->addAction(Act_Normal);//添加菜单项2
menu->exec(cur.pos());//关联到光标
}
此处注意Act_Maxsize,Act_Normal为在widget.h中声明的私有成员变量:
private:
Ui::Widget*ui;
QAction*Act_Maxsize;
QAction*Act_Normal;
同时在widget.h中添加头文件QACtion,在widget.cpp中添加头文件
#include<QMenu>
#include<QCursor>
3.初始化菜单项并关联槽函数
在widget.cpp中添加如下代码
Widget::Widget(QWidget*parent):
QWidget(parent),
ui(newUi::Widget)
{
ui->setupUi(this);
Act_Maxsize=newQAction(tr("XML"),this);
Act_Normal=newQAction(tr("SHOW"),this);
connect(Act_Maxsize,SIGNAL(triggered()),this,SLOT(ADDChange()));
connect(Act_Normal,SIGNAL(triggered()),this,SLOT(XMLChange()));
}
4.实现槽函数,此处使用QDebug输出信息(注意添加#include<QDebug>)
在widget.h中添加私有槽函数(privateslots)并实现如下
privateslots:
voidADDChange()
{
qDebug()<<"XMLItemPressed.";
}
voidXMLChange()
{
qDebug()<<"SHOWItemPressed.";
}
最后编译运行,当右键单击点击XML菜单项时输出“XMLItemPressed.”;点击SHOW时输出"SHOWItemPressed."。如果要实现其他右键菜单响应函数,则进行相应的编辑。
connect(Act_Maxsize,SIGNAL(triggered()),this,SLOT(ADDChange()));
http://blog.sina.com.cn/s/blog_98a4dde701013dzh.html
相关文章推荐
- Qt 窗体布局
- qt超强绘图控件qwt - 安装及配置
- Qt 常用类 (10)—— QDialog
- Qt入门-下拉列表框QComboBox类
- QTcpSocket 编程
- Qt Animation
- Qt之界面实现技巧
- Qt之QTextEdit
- Qt之设置窗口背景
- Qt进程间共享内存例子
- QT中QWidget、QDialog及QMainWindow的区别
- Qt实现基本QMainWindow主窗口程序
- 关于Qt几个问题的答案
- PyQt5学习随笔01--计算一个文件夹里我们码的代码行数&&PyQt的多线程通信
- Qt QTreeWidget 树形结构实现
- 发布MQTT消息究竟有多快?
- mqtt,Could not connect: CONNECTION_REFUSED_NOT_AUTHORIZED
- Qt中如何利用QPushButton来实现一个弹出菜单
- 借贷宝推广得现金是真的_注册就送人民币20元_邀请码CRJYQTK
- QT 移植到VxWorks的探索之路