QT之GUI学习笔记(八)----菜单和工具条的优化
2017-03-17 13:54
288 查看
原文地址:http://devbean.blog.51cto.com/448512/205958
如何进行菜单和工具栏的优化,有以下步骤
(1)
(2)
(3)点击添加 添加前缀 如图所示
将生成的/new/prefix改成/。这是prefix就是以后使用图标时需要提供的前缀,以/开头。添加过prefix之后,然后在工程文件中添加一个图标,再选择Add file,选择那个图标。这样完成之后保存qrc文件即可。
(1)setIcon用于添加图标,添加的类为QIcon类型;
构造函数需要参数,参数类型是一个字符串。
由于需要使用qrc中定义的图片,所以字符串以:开始,后面加file的路径
点击run,运行结果如下
2.为QAction添加事件响应
QT的事件响应基于信号槽机制。
点击QAction会发出triggered()信号,因而此时需要声名一个slot,然后connect这个信号。
(1)mainwindow.h
(2)mainwindow.cpp
运行结果如下:
Qt的资源文件视图使用树状结构,根是/,叶子节点就是图片位置,连接在一起就是路径。比如这张图片的路径为/PICTURE/panda.ico
2.图片大小
QToolBar的图标大小默认是32*32,菜单默认是16*16。如果提供的图标小于要求的尺寸,则不做操作,Qt不会为你放大图片;反之,如果提供的图标文件大于相应的尺寸要求,比如是64*64,Qt会自动缩小尺寸
如何进行菜单和工具栏的优化,有以下步骤
一 添加图标
QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。我们需要使用QT的资源文件(1)
(2)
(3)点击添加 添加前缀 如图所示
将生成的/new/prefix改成/。这是prefix就是以后使用图标时需要提供的前缀,以/开头。添加过prefix之后,然后在工程文件中添加一个图标,再选择Add file,选择那个图标。这样完成之后保存qrc文件即可。
二.代码修改
1.修改mainwindow.cpp的构造函数的代码openAction = new QAction(tr("&Open"), this); openAction->setShortcut(QKeySequence::Open); openAction->setStatusTip(tr("Open a file.")); openAction->setIcon(QIcon(":/PICTURE/panda.ico"));
(1)setIcon用于添加图标,添加的类为QIcon类型;
构造函数需要参数,参数类型是一个字符串。
由于需要使用qrc中定义的图片,所以字符串以:开始,后面加file的路径
点击run,运行结果如下
2.为QAction添加事件响应
QT的事件响应基于信号槽机制。
点击QAction会发出triggered()信号,因而此时需要声名一个slot,然后connect这个信号。
(1)mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> /*前向声名,这是第一句增加的话 */ class QAction; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget 4000 *parent = 0); ~MainWindow(); private slots: void open(); private: //定义一个QAction类型的指针 QAction *openAction; }; #endif // MAINWINDOW_H
(2)mainwindow.cpp
#include <QMenu> #include<QMenuBar> #include<QAction> #include<QKeySequence> #include<QToolBar> #include<QMessageBox> #include "mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { //定义openAction,设置快捷键 openAction = new QAction(tr("&Open"), this); openAction->setShortcut(QKeySequence::Open); openAction->setStatusTip(tr("Open a file.")); openAction->setIcon(QIcon(":/PICTURE/panda.ico")); connect(openAction,SIGNAL(triggered()),this,SLOT(open())); //往menuBar中添加menu QMenu *file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); //添加工具栏 QToolBar *toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); } MainWindow::~MainWindow() { } void MainWindow::open(){ QMessageBox::information(NULL,tr("open"),tr("open a file")); }
运行结果如下:
三 图片知识
1.图片路径Qt的资源文件视图使用树状结构,根是/,叶子节点就是图片位置,连接在一起就是路径。比如这张图片的路径为/PICTURE/panda.ico
2.图片大小
QToolBar的图标大小默认是32*32,菜单默认是16*16。如果提供的图标小于要求的尺寸,则不做操作,Qt不会为你放大图片;反之,如果提供的图标文件大于相应的尺寸要求,比如是64*64,Qt会自动缩小尺寸
相关文章推荐
- QT之GUI学习笔记(七)----菜单和工具栏
- [学习笔记]-ligerui 工具条,树结构,右键菜单,弹框
- QT之GUI学习笔记(三)——组件布局
- QT之GUI学习笔记(十九)----QPainter
- [学习笔记]用户界面优化之Android侧滑菜单(DrawerLayout使用)
- QT之GUI学习笔记(二十四)---Graphics View Framework
- QT之GUI学习笔记---二进制文件读写
- Cocos2d - x学习笔记 [2] 菜单(GUI)、场景跳转
- QT之GUI学习笔记--parent参数
- QT之GUI学习笔记(二十)---反走样
- QT之GUI学习笔记---文本文件读写
- QT之GUI学习笔记(一)___hello World
- QT之GUI学习笔记(九)----状态栏
- Qt之GUI学习笔记(四)——创建对话框
- QT之GUI学习笔记(二十二)---坐标变换
- Qt学习笔记之GUI基本知识
- QT之GUI学习笔记(二)——信号槽机制
- QT之GUI学习笔记(六)-----mainWindow
- QT之GUI学习笔记(十四) -----事件(event)
- QT之GUI学习笔记---拖放技术(一)