C++ GUI Qt4学习笔记03
本章介绍创建Spreadsheet应用程序的主窗口
1.子类化QMainWindow
通过子类化QMainWindow可以创建一个窗口
图形用户界面(GUI)应用程序通常会使用很多的图片,最常见的为应用程序提供图片的方法是使用Qt的资源机制(resource mechanism)
使用Qt资源系统,必须创建一个资源文件,并且在识别该资源文件的.pro文件中添加一行代码。
RESOURCES = spreadsheet.qrc
当引用这些资源时,需要使用带路径的前缀:/(冒号斜线)的形式
2.创建菜单和工具栏
Qt通过“动作”的概念简化了有关菜单和工具栏的编程。一个动作(action)就是一个可以添加到任意数量的菜单和工具栏上的项
在Qt中,创建菜单和工具栏包括以下步骤:
创建并设置动作
创建菜单且把动作添加到菜单上
创建工具栏并且把动作添加到工具栏上
动作有一个加速键、一个父对象、一个图标、一个快捷键和一个状态提示。
3.设置状态栏
4.实现File菜单
5.使用对话框
如何在Qt中使用对话框,如何创建、初始化以及运行它们,并且对用户交互中的选择作出响应。
非模态窗口就是运行在应用程序中对于任何其他窗口都独立的窗口,可以进行窗口间的切换。
6.存储设置
Qsettings会存储应用程序中与特定平台相关的一些设置信息。
在windows系统中,使用的是系统注册表
在Unix系统中,把设置信息存储在文本文件中
7.多文档
单一应用程序处理多个文档
对File菜单进行改动
利用File->New创建一个空文档主窗口,而不是再次使用已经存在的主窗口
利用File->Close关闭当前主窗口
利用File->Exit关闭所有窗口
在每一个主窗口只提供一个文档的应用程序称为单文档界面(SDI)应用程序。
(MDI)只有单一主窗口,但可以对主窗口中央区域的多个文档窗口进行管理。
8.程序启动画面
类QSplashScreen会在应用程序的主窗口出现之前显示一个图片,可以再这个图片上显示一些消息,用来通知用户有关应用程序初始化的过程。通常,程序启动画面的代码会放在main()函数中,位于QApplication::exec()调用之前。
C++ GUI Qt4学习笔记03的更多相关文章
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- C++ GUI Qt4学习笔记08
C++ GUI Qt4学习笔记08 qtc++signal图形引擎文档 本章介绍Qt的二维图形引擎,Qt的二维图形引擎是基于QPainter类的.<span style="colo ...
- C++ GUI Qt4学习笔记09
C++ GUI Qt4学习笔记09 qtc++ 本章介绍Qt中的拖放 拖放是一个应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式.除了剪贴板提供支持外,通常它还提供数据移动和复制的功 ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
- C++ GUI Qt4学习笔记07
C++ GUI Qt4 qtc++scrollobject编程 事件(event)是由串口系统或者Qt自身产生的,用以响应所发生的各类事情.当用户按下或者松开键盘或者鼠标上的按键时,就可以产生一个 ...
- 【QT】C++ GUI Qt4 学习笔记1
Find对话框实现 平台 Qt5.3.2 MinGW4.8.2 注意创建时用QDialog finddialog.h #ifndef FINDDIALOG_H #define FINDDIALOG_H ...
- 【QT】C++ GUI Qt4 学习笔记2
Go To Cell 利用QT Desinger做好界面后加入的代码有 gotocelldialog.h #ifndef GOTOCELLDIALOG_H #define GOTOCELLDIALOG ...
- 【QT】C++ GUI Qt4 学习笔记3
菜单界面的实现. 看书上第三章,好长,好多代码.我敲了半天,想看看效果,结果却显示不出来.仔细一看,发现spreadsheet的实现在第四章.郁闷.... 又到官网上下代码,结果居然不能运行.难道是因 ...
- 【QT】C++ GUI Qt4 学习笔记4
感觉这本书的顺序设计的太不合理了,出现的最多的一句话就是后面会讲.按照使用的顺序讲不行吗?搞得代码都运行不了. 我决定先直接跳到73页,子类化QTableWidgetItem这一节.因为前面功能的实现 ...
随机推荐
- 各种sort排序总结
冒泡排序 选择排序 插入排序
- eclipse 4.32 安装 gradle
更新网址 http://dist.springsource.com/release/TOOLS/gradle
- 【flask】项目集成Sentry收集线上错误日志
flask集成sentry分为4个步骤: 首先在sentry官网注册1个账号 然后创建1个新的项目,这里我选择的是flask,这会得到一些关于sdk的使用说明 接下来创建一个简单的flask项目使用s ...
- java8 stream编程
说明:这是基于同事的培训材料做的练习,记录下来,以作日后自己coding分析和改进 1.准备 pom.xml <dependency> <groupId>org.apache. ...
- USB转换PS2接线原理
https://blog.csdn.net/dfyy88/article/details/4540170 USB转换PS2接线原理 2009年09月10日 18:36:00 阅读数:13285 USB ...
- Python实现比较两个列表(list)范围
Python实现比较两个列表(list)范围 有一道题: 比较两个列表范围,如果包含的话,返回TRUE,否则FALSE. 详细题目如下: Create a function, this functio ...
- springBoot(1) 环境安装
真鸡儿要命.今天做开发.实在是整不动了...所以决定回家,干一波... 发现MyEclipse2014好像真的不用能用了... 瞬间焦头烂额,本来,就跑不了.现在环境也没一个能用的. 于是 就有了今天 ...
- C#得到10000以内素数
偶数除了二都不是素数 一个数 n 如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方 int i, j, n = 10000; for (i = 3; i <= n; i += 2) ...
- css简介和属性
CSS指的是层叠样式表(Cascading Style Sheets) 样式定义如何显示HTML元素,通常存储在样式表中. css使用方式 内联式 <!DOCTYPE html> < ...
- java基础笔记(9)
通过JDBC像数据库实现CRUD操作,这里通过一个存储查看人员的案例来了解java是如何通过JDBC实现与数据库的连接,三层结构中的模型层(数据访问),控制层(业务逻辑).以及视图层(表示层)又是怎么 ...