Qmenu和Qaction
来源:互联网 发布:9377皇图翅膀进阶数据 编辑:程序博客网 时间:2024/05/19 22:58
简介
如下是实现一个菜单栏及下拉菜单的制作:
在mainwindow.h中添加
class QAction;
class QMenu;
在pro中添加 QT += widgets
QMenu类作为菜单栏,QAction类作为点击菜单栏的下拉菜单使用 QMenu类对象的addaction(QAction类的对象)来添加
代码片段
//mainwindow.h---------------------------------------------------------------------ifndef MAINWINDOW_Hdefine MAINWINDOW_Hinclude //#include //包含QPlainTextEdit QAction QMenu 才能够使用这个类class QPlainTextEdit;class QAction;class QMenu;class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(); ~MainWindow();private slots: void test();private: void createActions(); void createMenus(); //文本框 QPlainTextEdit *textEdit; //file菜单 QMenu * fileMenu; //定义了file的下拉菜单为 new open save saveAS exit QAction *newAct; QAction *open; QAction *Save; QAction *saveAs; QAction *exit;};//mainwindow.cpp---------------------------------------------------------------------MainWindow::MainWindow(){ //创建一个文本编辑器 textEdit = new QPlainTextEdit; //设置文本编辑器为中心位置 setCentralWidget(textEdit); //首先创建file下拉的菜单栏 createActions(); //再来创建菜单目录,把下拉菜单的内容addaction加入到menu中 createMenus();}MainWindow::~MainWindow(){}void MainWindow::test(){} //file下拉菜单 名字为 new open Save saveAs exit new.png为图标 添加了快捷键 以及添加点击这个下拉菜单所条用的槽函数,这里使用test作为测试使用void MainWindow::createActions(){" newAct = new QAction(QIcon(":/image/new.png"), tr("&New"), this); newAct->setShortcuts(QKeySequence::New); //为action设置快捷键ctrl+N newAct->setStatusTip(tr("Create a new file")); //设置提示 connect(newAct, SIGNAL(triggered()), this, SLOT(test())); //New点击事件调用test " open = new QAction(QIcon(":/image/open.png"), tr("&Open"), this); open->setShortcuts(QKeySequence::Open); open->setStatusTip(tr("open a new file")); connect(open, SIGNAL(triggered()), this, SLOT(test())); //点击Open事件调用test Save = new QAction(QIcon(":/image/save.png"), tr("&Save"), this); Save->setShortcuts(QKeySequence::Save); Save->setStatusTip(tr("Save a new file")); connect(Save, SIGNAL(triggered()), this, SLOT(test())); //点击Save事件调用test saveAs = new QAction( tr("&SaveAs"), this); saveAs->setShortcuts(QKeySequence::SaveAs); newAct->setStatusTip(tr("SaveAs a new file")); connect(saveAs, SIGNAL(triggered()), this, SLOT(test())); //saveAS点击事件调用test exit = new QAction( tr("&exit"), this); exit->setShortcuts(QKeySequence::Close); exit->setStatusTip(tr("exit a new file")); connect(exit, SIGNAL(triggered()), this, SLOT(close())); //点击exit事件调用test}void MainWindow::createMenus(){ //创建一个name为file的菜单栏 fileMenu = menuBar()->addMenu(tr("&File")); //在这个菜单栏添加action即下拉菜单 fileMenu->addAction(newAct); fileMenu->addAction(open); fileMenu->addAction(Save); fileMenu->addAction(saveAs); //添加一个分割器 fileMenu->addSeparator(); //推出下拉菜单 fileMenu->addAction(exit);}
总结
QMenuBar:就是所有窗口的菜单栏,在此基础上添加不同的QMenu和QAction
QMenu:菜单栏里面菜单,可以显示文本和图标,但是并不负责执行操作,有点类似label的作用
QAction: Qt 将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类表示。QAction才是真正负责执行操作的部件。
用一个简单的图来表示三者关系:
1 0
- Qmenu和Qaction
- 关于QT的菜单QMenu和QAction
- Qt学习笔记:QMenuBar()、QMenu()和QAction()的使用
- qt中的菜单QMenu QAction
- qt中的菜单QMenu QAction
- QMenu和QAction创建及信号槽关联,实现子窗口调用
- 为QMenu添加对QAction的tooltip的支持
- Qt菜单 QMenu QAction连接信号槽函数
- QT常用控件之QVBoxLayout,QRadioButton,QCheckBox,QMenu,QAction
- QAction
- QAction
- QAction
- QAction
- QAction
- QAction
- QT之菜单栏QMenu,下拉菜单QAction,工具栏QToolBar的使用(二)
- Ⅰ.2.6.5 如何测试QAction、QMenu、以及QMenuBar(Qt 4)
- 【转】QT之菜单栏QMenu,下拉菜单QAction,工具栏QToolBar的使用
- 使用PL/SQL Developer 远程连接Oracle数据库出现 “无监听程序“错误 的解决办法
- 技术问题分享之系统重装(未完待续...)
- Linux内核学习笔记: uid之ruid,euid,suid
- # Unity 引擎入门实践
- getPos
- Qmenu和Qaction
- G - Amusing Joke
- 专业游戏玩家如何选导热硅脂
- UIVIEW的各个属性详解
- JS识别不同浏览器信息
- Java 枚举(enum) 详解7种常见的用法
- Robot Framework自动化测试(一)---第一个脚本
- java动态代理实现
- LTE TS36.523-1 7.1.1.1