Qt学习之五: 添加动作与资源文件

来源:互联网 发布:杨幂睡小鲜肉知乎 编辑:程序博客网 时间:2024/06/05 00:43

一、添加动作
在主窗口的基础上,添加菜单和工具栏等动作。Qt使用QAction类作为动作。 QAction 包含了图标、菜单文字、快捷键、状态栏文字、浮动帮助等信息。

Tips:

(1) QObject::tr()函数:被它处理的字符串可以使用工具提取出来翻译成其他语言,被用于国际化使用。

(2) 字符串中的快捷键的设置的含义:”&Open”

(3) sizeHint()函数:得到Qt为widget推荐的Height。
C++代码:
mainwindow.h:

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();private:    Ui::MainWindow *ui;    void open(); //定义私有函数open()    QAction *openAction;//定义私有变量};#endif // MAINWINDOW_H

mainwindow.cpp:

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QAction>#include <QMenuBar>#include <QMessageBox>#include <QStatusBar>#include <QToolBar>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    openAction = new QAction(QIcon(":/images/open.png"),tr("&Open..."),this);    openAction->setShortcuts(QKeySequence::Open);    openAction->setStatusTip(tr("Open an existing file"));    connect(openAction,&QAction::triggered,this,&MainWindow::open);    QMenu *file = menuBar()->addMenu(tr("&File"));    file->addAction(openAction);    QToolBar *toolBar = addToolBar(tr("&File"));    toolBar->addAction(openAction);    QStatusBar *statusBar = QMainWindow::statusBar();    statusBar->addAction(openAction);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::open(){    QMessageBox::information(this,tr("Information"),tr("Open"));}

运行结果:
(1) 工具栏中添加了动作Open

这里写图片描述

(2)菜单栏中添加动作Open

这里写图片描述

二、资源文件
Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。如果你的程序需要加载特定的资源(图标、文本翻译等),那么,将其放置在资源文件中, 就再也不需要担心这些文件的丢失。 也就是说, 如果你将资源以资源文件形式存储,它是会编译到可执行文件内部。
使用 Qt Creator 可以很方便地创建资源文件。我们可以在工程上点右键,选择“添加新文件…”,
可以在 Qt 分类下找到“Qt 资源文件”:
这里写图片描述
点击“选择…”按钮,打开“新建 Qt 资源文件”对话框。在这里我们输入资源文件的名字和路径:
这里写图片描述
点击下一步,选择所需要的版本控制系统,然后直接选择完成。我们可以在 Qt Creator 的左侧
文件列表中看到“资源文件”一项,也就是我们新创建的资源文件:

右侧的编辑区有个“添加”,我们首先需要添加前缀,比如我们将前缀取名为 images。然后选中
这个前缀,继续点击添加文件,可以找到我们所需添加的文件。

Question:
今天在添加动作时,使用了资源文件中的images/open.png,在项目文件pro中添加了RESOURCES +=\ res.qrc。但是open图片没有在工具栏上显示出来?
原因是什么呢?

这里写图片描述


2016.9.6
今天在深入学习菜单栏、工具栏和标题栏的创建和添加动作的过程中,将图标添加到工具栏上,终于成功了。上次图标没有显示出来的原因是没有在资源文件.qrc中添加图片之后进行编译,没有生成对应的C++文件。
这里写图片描述

这里写图片描述

0 0
原创粉丝点击