QT中菜单Menu与工具栏Toolbar中各个Action的动态添加删除
2013-04-06 21:16
786 查看
就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction。顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述、图标、快捷键、回调函数(也就是信号槽),等等。神奇的是,QAction能够根据添加的位置来改变自己的样子——如果添加到菜单中,就会显示成一个菜单项;如果添加到工具条,就会显示成一个按钮。
代码如下:
代码如下:
//MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void openFile(); void add(); void remove(); private: Ui::MainWindow *ui; //QAction *openAcition; QMenu *file; QAction *addscess; QToolBar *toolbar; QToolBar *toolbar1; }; #endif // MAINWINDOW_H
//MainWindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QAction *openAcition = new QAction(tr("&Open"),this); QAction *openAction = new QAction(tr("&apen"),this); QAction *add = new QAction(tr("&add"),this); QAction *remove = new QAction(tr("&remove"),this); file = menuBar()->addMenu(tr("&File")); file->addAction(openAcition); file->addAction(add); file->addAction(remove); toolbar = addToolBar(tr("&File")); toolbar->addAction(openAcition); toolbar->addAction(openAction); toolbar1 = addToolBar(tr("&File")); //toolbar1->addAction(openAcition); toolbar1->addAction(openAction); connect(openAcition,SIGNAL(triggered()),this,SLOT(openFile())); connect(add,SIGNAL(triggered()),this,SLOT(add())); connect(remove,SIGNAL(triggered()),this,SLOT(remove())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::openFile() { qDebug()<<"I did that!!"; } void MainWindow::add() { addscess = new QAction(tr("&addscess"),this); file->addAction(addscess); toolbar->addAction(addscess); } void MainWindow::remove() { file->removeAction(addscess); toolbar->removeAction(addscess); }
相关文章推荐
- CMFCMenuBar动态删除菜单和创建新菜单
- Android中动态添加╱删除的Spinner菜单 — ArrayList与Widget的依赖性
- 控制QT中MainWindow上Menu和ToolBar的上下文菜单Action列表
- 动态添加/删除Spinner菜单
- QT的 QButton 添加ICO 以及添加菜单 Action
- QtDesigner中如何手动添加工具栏toolBar
- Cocoa中动态删除和添加菜单项(NSMenuItem)
- CMFCMenuBar动态删除菜单和创建新菜单
- actionBar和Toolbar中如何动态隐藏和修改menu上的菜单
- Android中动态添加╱删除的Spinner菜单
- Qt mainWindow添加状态栏,菜单栏,工具栏的Action方法
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- Java基础之处理事件——添加菜单图标(Sketcher 8 with toolbar buttons and menu icons)
- 扩展easyui datagrid的两个方法.动态添加和删除toolbar的项
- Android动态修改ToolBar的Menu菜单
- QT主窗口创建菜单、工具栏和状态栏,添加上下文菜单
- menu.addIntentOptions 添加动态菜单----转
- Android动态修改ToolBar的Menu菜单
- QtDesigner如何添加工具栏toolBar
- qt中的菜单QMenu QAction