Qt学习笔记(2) QMenu QToolBar ContextMenu QStatusBar
来源:互联网 发布:安卓数据精灵 编辑:程序博客网 时间:2024/05/01 12:15
Qt中使用“动作”的概念来简化菜单和工具栏的编程,一个动作,即QAction,就是一个可以添加到任意数量的菜单和工具栏上的项。
Qt中使用图片,常用的方法是使用资源机制:创建资源文件,将资源添加进来,引用方法是 ” :+前缀+路径名 “,如 :/images/new.png
创建菜单,工具栏最快的方式就是使用 Qt Designer.以下是代码示例:
1. 创建QAction
void MainWindow::createAction(){ newFileAction = new QAction(tr("&New"),this); newFileAction->setIcon(QIcon(":/images/new.png")); //图标 newFileAction->setShortcut(QKeySequence::New); //快捷键 使用Qt提供的枚举值 newFileAction->setStatusTip(tr("Create a new File")); //状态栏提示 connect(newFileAction,SIGNAL(triggered()),this,SLOT(newFile())); //信号-槽 ...... aboutAction = new QAction(tr("&About"),this); aboutAction->setIcon(QIcon(":/images/about.png")); //图标 aboutAction->setShortcut(QKeySequence(tr("Ctrl+H"))); //快捷键 自定义快捷键 aboutAction->setStatusTip(tr("About")); //状态栏提示}
2.创建QMenu
void MainWindow::createMenu(){ fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newFileAction); fileMenu->addAction(openFileAction); fileMenu->addAction(saveAction); editMenu = menuBar()->addMenu(tr("&Edit")); editMenu->addAction(cutAction); editMenu->addAction(copyAction); editMenu->addAction(pasteAction); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAction);}
3.创建QToolBar
void MainWindow::createToolbars(){ fileToolBar = addToolBar(tr("&File")); fileToolBar->addAction(newFileAction); fileToolBar->addAction(openFileAction); fileToolBar->addAction(saveAction); editToolBar = addToolBar(tr("&Edit")); editToolBar->addAction(cutAction); editToolBar->addAction(copyAction); editToolBar->addAction(pasteAction); editToolBar->addSeparator(); //分隔栏 editToolBar->addWidget(lineEdit); //将控件作为工具栏的项}
4.创建ContextMenu 鼠标右击菜单
void MainWindow::createContextMenu(){ textEdit->addAction(cutAction); textEdit->addAction(copyAction); textEdit->addAction(pasteAction); textEdit->setContextMenuPolicy(Qt::ActionsContextMenu);}
Qt中的QLineEdit本身就有常用的右击菜单功能,上面的代码是一个实例
5. 创建StatusBar
void MainWindow::createStatusBar(){ statusLineEdit->setFixedSize(statusLineEdit->sizeHint()); statusBar()->addWidget(statusLineEdit);}
运行结果:
- Qt学习笔记(2) QMenu QToolBar ContextMenu QStatusBar
- Qt学习八:控件五:QTabWidget控件、QMenu和QToolBar控件、
- QT之菜单栏QMenu,下拉菜单QAction,工具栏QToolBar的使用(二)
- Qt学习笔记:QMenuBar()、QMenu()和QAction()的使用
- 【转】QT之菜单栏QMenu,下拉菜单QAction,工具栏QToolBar的使用
- Qt QToolBar
- QT状态栏QStatusBar
- QT状态栏QStatusBar
- Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载)
- QStatusBar的学习
- QT之qss教程-QStatusBar
- Qt ContextMenu
- Qt: 隐藏菜单QMenu
- Qt: 隐藏菜单QMenu
- QT QMenu美化备忘
- Qt: 隐藏菜单QMenu
- Qt: 隐藏菜单QMenu
- Android学习笔记(四二):SQLite、ListView、ContextMenu
- JavaScript如何控制Session
- title
- vim7.3 配置 go语法高亮
- 面向对象的程序设计-26-对于商品库存量计算的实例
- 2.Web Service的本质
- Qt学习笔记(2) QMenu QToolBar ContextMenu QStatusBar
- sphinx全文索引教程
- Windows XP 双启动安装Ubuntu
- 在CentOS 5上安装Git教程
- 单任务操作系统及其应用程序
- commons-email插件发邮件问题总结
- 检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005
- 两次使用Stream注意事项
- makefile中的细节