C++ GUI Qt4编程(08)-3.2spreadsheet-resource
1. C++ GUI Qt4编程第三章,图片使用资源机制法。
2. 步骤:
2-1. 在resource文件夹下,新建images文件,存放图片。
2-2. 新建spreadsheet.qrc文件,并在.pro文件中添加代码:
RESOURCES = spreadsheet.qrc
2-3. 打开.qrc文件,写入images文件中图片名称。
3. mainwindow.h
- /**/
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- class QMenu;
- class QAction;
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- MainWindow();
- private:
- /*菜单*/
- QMenu *fileMenu;
- QMenu *editMenu;
- QMenu *toolsMenu;
- QMenu *optionsMenu;
- QMenu *helpMenu;
- /*File动作*/
- QAction *newAction;
- QAction *openAction;
- QAction *saveAction;
- QAction *saveAsAction;
- QAction *exitAction;
- /*Edit动作*/
- QAction *cutAction;
- QAction *copyAction;
- QAction *pasteAction;
- QAction *deleteAction;
- QMenu *selectSubMenu;
- QAction *selectRowAction;
- QAction *selectColumnAction;
- QAction *selectAllAction;
- QAction *findAction;
- QAction *goToCellAction;
- /*Tools动作*/
- QAction *recalculateAction;
- QAction *sortAction;
- /*Options动作*/
- QAction *showGridAction;
- QAction *autoRecalculateAction;
- /*Help动作*/
- QAction *aboutAction;
- QAction *aboutQtAction;
- void createMenus();
- void createActions();
- void createFileActions();
- void createEditActions();
- void createToolsActions();
- void createOptionsActions();
- void createHelpAction();
- };
- #endif /*MAINWINDOW_H*/
4. mainwindow.cpp
- /**/
- #include <QMenu>
- #include <QMenuBar>
- #include <QAction>
- #include "mainwindow.h"
- MainWindow::MainWindow()
- {
- createActions();
- createMenus();
- }
- void MainWindow::createMenus()
- {
- /*file menu*/
- fileMenu = menuBar()->addMenu(tr("&File"));
- fileMenu->addAction(newAction);
- fileMenu->addAction(openAction);
- fileMenu->addAction(saveAction);
- fileMenu->addAction(saveAsAction);
- fileMenu->addSeparator();
- fileMenu->addAction(exitAction);
- /*edit menu*/
- editMenu = menuBar()->addMenu(tr("&Edit"));
- editMenu->addAction(cutAction);
- editMenu->addAction(copyAction);
- editMenu->addAction(pasteAction);
- editMenu->addAction(deleteAction);
- selectSubMenu = editMenu->addMenu(tr("&Select"));
- selectSubMenu->addAction(selectRowAction);
- selectSubMenu->addAction(selectColumnAction);
- selectSubMenu->addAction(selectAllAction);
- editMenu->addSeparator();
- editMenu->addAction(findAction);
- editMenu->addAction(goToCellAction);
- /*tools menu*/
- toolsMenu = menuBar()->addMenu(tr("&Tools"));
- toolsMenu->addAction(recalculateAction);
- toolsMenu->addAction(sortAction);
- /*option menu*/
- optionsMenu = menuBar()->addMenu(tr("&Option"));
- optionsMenu->addAction(showGridAction);
- optionsMenu->addAction(autoRecalculateAction);
- /*间隔器*/
- menuBar()->addSeparator();
- /*help menu*/
- helpMenu = menuBar()->addMenu(tr("&Help"));
- helpMenu->addAction(aboutAction);
- helpMenu->addAction(aboutQtAction);
- }
- void MainWindow::createActions()
- {
- createFileActions();
- createEditActions();
- createToolsActions();
- createOptionsActions();
- createHelpAction();
- }
- /*file动作*/
- void MainWindow::createFileActions()
- {
- /*newAction*/
- newAction = new QAction(tr("&New"), this);
- newAction->setIcon(QIcon(":/images/filenew.png"));
- /*openAction*/
- openAction = new QAction(tr("&Open"), this);
- openAction->setIcon(QIcon(":/images/fileopen.png"));
- /*saveAction*/
- saveAction = new QAction(tr("&Save"), this);
- saveAction->setIcon(QIcon(":/images/filesave.png"));
- /*saveAsAction*/
- saveAsAction = new QAction(tr("Save &As..."), this);
- saveAsAction->setIcon(QIcon(":/images/filesaveas.png"));
- /*exitAction */
- exitAction = new QAction(tr("E&xit"), this);
- }
- /*edit动作*/
- void MainWindow::createEditActions()
- {
- /*cutAction*/
- cutAction = new QAction(tr("Cu&t"), this);
- cutAction->setIcon(QIcon(":/images/editcut.png"));
- /*copyAction*/
- copyAction = new QAction(tr("&Copy"), this);
- copyAction->setIcon(QIcon(":/images/editcopy.png"));
- /*pasteAction*/
- pasteAction = new QAction(tr("&Paste"), this);
- pasteAction->setIcon(QIcon(":/images/editpaste.png"));
- /*deleteAction*/
- deleteAction = new QAction(tr("&Delete"), this);
- deleteAction->setIcon(QIcon(":/images/editdelete.png"));
- selectRowAction = new QAction(tr("&Row"), this);
- selectColumnAction = new QAction(tr("&Column"), this);
- selectAllAction = new QAction(tr("&All"), this);
- /*findAction*/
- findAction = new QAction(tr("&Find..."), this);
- findAction->setIcon(QIcon(":/images/editfind.png"));
- /*goToCellAction*/
- goToCellAction = new QAction(tr("&Go to Cell..."), this);
- goToCellAction->setIcon(QIcon(":/images/editgotocell"));
- }
- /*tools动作*/
- void MainWindow::createToolsActions()
- {
- recalculateAction = new QAction(tr("&Recalculate"), this);
- sortAction = new QAction(tr("&Sort..."), this);
- }
- /*options动作*/
- void MainWindow::createOptionsActions()
- {
- showGridAction = new QAction(tr("&Show Grid"), this);
- autoRecalculateAction = new QAction(tr("Auto-Recalculate"), this);
- }
- /*help动作*/
- void MainWindow::createHelpAction()
- {
- aboutAction = new QAction(tr("&About"), this);
- aboutQtAction = new QAction(tr("About &Qt"), this);
- }
5. main.cpp
- #include <QApplication>
- #include "mainwindow.h"
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- MainWindow *win = new MainWindow;
- win->show();
- return app.exec();
- }
6. spreadsheet.qrc
- <RCC>
- <qresource>
- <file>images/editcopy.png</file>
- <file>images/editcut.png</file>
- <file>images/editdelete.png</file>
- <file>images/editfind.png</file>
- <file>images/editgotocell.png</file>
- <file>images/editpaste.png</file>
- <file>images/filenew.png</file>
- <file>images/fileopen.png</file>
- <file>images/filesave.png</file>
- <file>images/filesaveas.png</file>
- </qresource>
- </RCC>
C++ GUI Qt4编程(08)-3.2spreadsheet-resource的更多相关文章
- C++ GUI Qt4编程(10)-3.4spreadsheet
1. C++ GUI Qt4编程第三章,增加spreadsheet. 2. spreadsheet.h /**/ #ifndef SPREADSHEET_H #define SPREADSHEET_H ...
- C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar
1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...
- C++ GUI Qt4编程(07)-3.1menu
1. C++ GUI Qt4编程第三章,添加menu菜单. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include < ...
- C++ GUI Qt4编程(03)-1.3layout
1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7: Qt版本:5.5.13. 程序:layout.cpp #include <QApplication> #i ...
- C++ GUI Qt4编程(02)-1.2quit
1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7: Qt版本:5.5.13. 程序:quit.cpp #include <QApplication> #inc ...
- C++ GUI Qt4编程(01)-1.1Hello Qt
1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7: Qt版本:5.5.13. 程序:hello.cpp #include <QApplication> #in ...
- C++ GUI Qt4编程-创建自定义窗口部件
C++ GUI Qt4编程-创建自定义窗口部件 Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...
- C++ GUI Qt4 编程 (第二版)
[加拿大]JasminBlanchette [英]MarkSummerfield . 电子工业 2008. 前几天的问题多是因为版本不兼容的问题. QT本身Q4 Q5就有版本问题,然后集成到VS08 ...
- C++ GUI Qt4编程(13)-6.2preferencedialog
1. 主要介绍了QStackedLayout.QListWidget.QDialogButtonBox的简单用法.2. QStackedLayout: 要使某个特定的子窗口部件可见,可以用setC ...
随机推荐
- selenium+phantomjs解析JS
背景知识: PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, J ...
- django: rest-framework的 分页和过滤
django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...
- c# 多维数组、交错数组(转化为DataTable)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Shiro——概述
Apache Shiro 是 Java 的一个安全(权限)框架. Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境. Shiro 可以完成 ...
- Maven——依赖
一.依赖的范围 依赖的范围有几个可选值,我们用得到的是:compile.test.provided 三个. [1]从项目结构角度理解 compile 和 test 的区别 [2]从开发和运行这两个不同 ...
- Java集合框架---重构设计
面向接口编程: 接口类型 变量 =new 实现类(); List list=new ArrayList(); --------------------------------------- List ...
- 删除一个数的K位使原数变得最小
原创 给定一个n位正整数a, 去掉其中k个数字后按原左右次序将组成一个新的正整数.对给定的a, k寻找一种方案,使得剩下的数字组成的新数最小. 提示:应用贪心算法设计求解 操作对象为n位正整数,有可能 ...
- IOC AOP 设计模式
IOC AOP 不是什么技术而是一种设计模式 学习 IOC AOP 其实是在学习一种思想. 1.IOC IOC其实是 将对象的创建和获取提取到外部.由外部IOC容器提供需要的组件. 看下面代码: p ...
- 使用VS Code开发C++
1. 参考/转载 vs code进行c/c++开发 VSCode 的第一个C++程序(windows)[更新2018.10.28] 2. C++开发相关插件(扩展商店中直接搜索) 至少要装C/C++. ...
- 扩展卢卡斯定理(Exlucas)
题目链接 戳我 前置知识 中国剩余定理(crt)或扩展中国剩余定理(excrt) 乘法逆元 组合数的基本运用 扩展欧几里得(exgcd) 说实话Lucas真的和这个没有什么太大的关系,但是Lucas还 ...