QT之GUI学习笔记(八)----菜单和工具条的优化

原文地址:http://devbean.blog.51cto.com/448512/205958
如何进行菜单和工具栏的优化,有以下步骤

一 添加图标

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 *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会自动缩小尺寸

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值