本章介绍创建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的更多相关文章

  1. C++ GUI Qt4学习笔记01

    C++ GUI Qt4学习笔记01   qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...

  2. C++ GUI Qt4学习笔记08

    C++ GUI Qt4学习笔记08   qtc++signal图形引擎文档 本章介绍Qt的二维图形引擎,Qt的二维图形引擎是基于QPainter类的.<span style="colo ...

  3. C++ GUI Qt4学习笔记09

    C++ GUI Qt4学习笔记09   qtc++ 本章介绍Qt中的拖放 拖放是一个应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式.除了剪贴板提供支持外,通常它还提供数据移动和复制的功 ...

  4. C++ GUI Qt4学习笔记05

    C++ GUI Qt4学习笔记05   qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮 ...

  5. C++ GUI Qt4学习笔记07

    C++ GUI Qt4   qtc++scrollobject编程 事件(event)是由串口系统或者Qt自身产生的,用以响应所发生的各类事情.当用户按下或者松开键盘或者鼠标上的按键时,就可以产生一个 ...

  6. 【QT】C++ GUI Qt4 学习笔记1

    Find对话框实现 平台 Qt5.3.2 MinGW4.8.2 注意创建时用QDialog finddialog.h #ifndef FINDDIALOG_H #define FINDDIALOG_H ...

  7. 【QT】C++ GUI Qt4 学习笔记2

    Go To Cell 利用QT Desinger做好界面后加入的代码有 gotocelldialog.h #ifndef GOTOCELLDIALOG_H #define GOTOCELLDIALOG ...

  8. 【QT】C++ GUI Qt4 学习笔记3

    菜单界面的实现. 看书上第三章,好长,好多代码.我敲了半天,想看看效果,结果却显示不出来.仔细一看,发现spreadsheet的实现在第四章.郁闷.... 又到官网上下代码,结果居然不能运行.难道是因 ...

  9. 【QT】C++ GUI Qt4 学习笔记4

    感觉这本书的顺序设计的太不合理了,出现的最多的一句话就是后面会讲.按照使用的顺序讲不行吗?搞得代码都运行不了. 我决定先直接跳到73页,子类化QTableWidgetItem这一节.因为前面功能的实现 ...

随机推荐

  1. 构造Map并对其排序

    #构造Map并对其排序 attr_tul = ['a','b','c','d','e','f'] one_tul = [,,,,,] one_dic = {} for i in range(len(a ...

  2. Vue知识整理9:class与style绑定

    1.v-bind:class:绑定class样式.通过控制isActive变量值来实现是否显示:通过.active样式设置背景颜色. 2.支持普通的class与v-bind绑定样式混合使用: v-bi ...

  3. 测开之路一百四十二:ORM框架之SQLAlchemy建库、建表、数据库操作

    flask-SQLAlchemy是在原生SQLAlchemy的基础之上做了一层封装,安装flask-SQLAlchemy会自动安装SQLAlchemy 安装 传统的sql建表建字段 通过flask-S ...

  4. excel 字母变大写 宏

    Sub ConvertToUpperCase() Dim Rng As Range Worksheets("Sheet1").UsedRange.Select For Each R ...

  5. 【MM系列】SAP OX09中的地址如何取

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP OX09中的地址如何取   ...

  6. VMware克隆虚拟机后mac地址重新设置

    ifconfig eth1   确定新网卡的MAC地址. nmcli con 确定新网卡的UUID vim /etc/udev/rules.d/70-persistent-net.rules 把原et ...

  7. 第四周课程总结与第二次实验报告(Java简单类与对象)

    1.写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类具有: ...

  8. Cassandra视图

    一.简介 Cassandra作为一个P2P结构的NOSQL数据库,使用与HBase不同的去中心化架构,在国外使用非常广泛,受欢迎程度甚至在Hbase之上.今天这篇文章介绍Cassandra在视图方面设 ...

  9. Luogu P4040 [AHOI2014/JSOI2014]宅男计划

    题目 显然存活天数与叫外卖次数的函数是凸函数. 所以三分买外卖的次数. 然后把食品按保质期升序排序. 并且单调栈搞一下,把又贵又保质期短的丢掉. 那么随着保质期的增加,食品的价格一定上涨. 所以我们从 ...

  10. linux 隐藏显示终端光标

    转载:http://blog.chinaunix.net/uid-20682890-id-3180911.html 一.使用shell 的 echo 命令实现. echo -ne <ctrl+v ...