[加拿大]JasminBlanchette [英]MarkSummerfield . 电子工业 2008.


前几天的问题多是因为版本不兼容的问题. QT本身Q4 Q5就有版本问题,然后集成到VS08 VS10又存在版本不一至问题, 所以就是不停地查错排错, 直接到回到最低级配置就OK了.

system32加入了三个dll :   QtGuid4.dll   QtCored4.dll  QtCore4.dll QtGui4.dll QtOpenGL4.dll (后3个是没用的?) 放入bin下面, 全部编译好后是40M.

第一部分 Qt基础
第1章 Qt入门
第2章 创建对话框
第3章 创建主窗口
第4章 实现应用程序的功能
第5章 创建自定义窗口部件

第二部分 Qt中级
第6章 布局管理
第7章 事件处理
第8章 二维图形
第9章 拖放
第10章 项视图类
第11章 容器类
第12章 输入与输出
第13章 数据库
第14章 多线程
第15章 网络
第16章 XML
第17章 提供在线帮助

 

第三部分 Qt高级
第18章 国际经
第19章 自定义外观
第20章 三维图形
第21章 创建插件
第22章 应用程序脚本
第23章 平台相关特性
第24章 嵌入性编程第四部分


 


第二章 设计对话框

子类化QDialog ,QDialog derived from QWidgets.

在每一个用户可见的字符周围使用tr是一个好习惯.

 

布局管理器类不是窗口部件, 派生自QLayout ,QLayout derived from Qbject.

 

 

如果使用设计师设计的窗口,要加入头文件 “ui_fileName.h”   uic工具会将ui文件转换成此文件.

 

改变形状的对话框:

 

         okButton default = true  ,  means …             checkable = true , means…

SortDialog(QWidget *parent = 0);  指明没有父窗口     setupUi(this); 初始化窗体,将槽与信号 建立关系.

 

 

 

 

动态对话框:

程序运行时使用ui文件创建来的对话框,是运行时用QUiLoader类载入文件,

QObject::findChild<T>() .   访问窗体中各子窗口部件 .

QTabWidget,

 

 

 

 

 

 

内置的窗口部件类

 

声明窗口部件 , 设置属性, 添加到布局, 信号和槽.

 

 

如果想从Qt中获益, 就应当尽快达到对Qt参考文档 了如指掌的程度 .

 

使用前置声明,而不是包含头文件, 使编译过程更快些

moc 就是QT的元对象编译器

 

设计师:  创建并初始化窗口部件 , 放到布局中, 设置TAB, 建立信槽,实现自定义槽.

 

萨特的毛病很多很多很多,多得让人苦不堪言, 比如此时的:半裸上体在看电影放屁外加突然爆笑---- 1秒钟让你疯掉. ----

 

通过简单地增加另外一个间接层 就可以解决软件的任何问题.

动作是在createAction函数中创建的.

 

要是发现一个人把"弟" 打成了"北", 这家伙肯定用的是五笔输入法.

包含这些动作的菜单的 createMenus () .Qt中,菜单都是QMenu的实例, addMenu,  menuBar() , 

 

 



第三章 创建 主窗口

 

子类化QMainWindow  创建一个应用程序的主窗口, 由于 QDialog 和 QMainWindow都派生自QWidget

创建菜单:

  • 创建并且设置动作
  • 创建菜单并且把动作添加到菜单
  • 创建工具栏并把动作添加到工具栏

 

 

动作new 有一个加速键tr(“&New”),一个父对象this,一个图标setIcon,一个快捷setShortcut和一个状态提示setStatusTip.

 

最近打开:recent opened files

设置状态栏

QMainWindow:tatusBar()返回一个指向状态栏的指针 ,

QMessageBox::warning(parent,title,message,buttons); 

information() , question(), critical() , ,

 

子菜单 : editMenu = menuBar()->addMenu(tr(“&Edit”)); subMenu = editMenu->addMenu(tr(“&sub”));

 

这里有正则式:

tr(“%1[*] – %2”).arg(showName).arg(tr(“Spreadsheet”));  第一个%会被showName替换第二个%会被SpreadSheet替换,使用arg有很大的灵活性.

 

QMutableStringListIterator

 

 

 

使用对话框:

 

模态的对话框,阻塞对话框的意思,如果是通过show调用的,就是非模态.除非使用了setModal,如果通过exec调用的,就是模态.

 

由于使用完一个对话框或者菜单后,通常就不会再用了,所以通常在堆栈中创建.new & delete 作用域结束后自动毁掉

同样使用堆栈,使用实例变量 和使用new 有什么区别?

存储设置 writeSetting readSetting

多文档

程序启动画面 QSplashScreen

[75/510]



第四章 底层功能函数 及载入和保存文件 内在中存储数据 , 实现剪贴板,

子类化QTableWidget , derived from QTableView , derived from QWidget ,QObject.

载入和保存:

 

现在转回去做小论文了,契机是那什么重要的和紧急的事情.插一段有用的网站:

http://www.opengpu.org/

http://www.cnblogs.com/fengyuheliu/archive/2011/09/21/2183063.html
http://man.chinaunix.net/database/postgresql_8.0
http://blog.sina.com.cn/s/articlelist_1613005113_0_1.html
http://dl.iplaysoft.com/files/1672.html

DICOM7 不可多得的资源站

降采样

iMKL

乐粉

性能分析

[96/510] 


第五章 创建自定义窗口部件

 

 

对一个已经存在的Qt窗口部件子类化或者直接对QWidget进行子类化.

C++ GUI Qt4 编程 (第二版)的更多相关文章

  1. C++ GUI Qt4编程(03)-1.3layout

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:layout.cpp #include <QApplication> #i ...

  2. C++ GUI Qt4编程(02)-1.2quit

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:quit.cpp #include <QApplication> #inc ...

  3. C++ GUI Qt4编程(01)-1.1Hello Qt

    1. 根据C++ GUI Qt4编程(第二版)整理2. 系统:centos7:  Qt版本:5.5.13. 程序:hello.cpp #include <QApplication> #in ...

  4. python核心编程第二版笔记

    python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d   提供调试输出1.2 –O   生成优化的字节码(生成 ...

  5. Python核心编程(第二版)PDF

    Python核心编程(第二版) 目录 第1部分 Python核心第1章 欢迎来到Python世界1.1 什么是Python1.2 起源1.3 特点1.3.1 高级1.3.2 面向对象1.3.3 可升级 ...

  6. C++ GUI Qt4编程-创建自定义窗口部件

    C++ GUI Qt4编程-创建自定义窗口部件   Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...

  7. Learning ROS for Robotics Programming - Second Edition(《学习ROS机器人编程-第二版》)

    Learning ROS for Robotics Programming - Second Edition <学习ROS机器人编程-第二版> ----Your one-stop guid ...

  8. C++ GUI Qt4编程(10)-3.4spreadsheet

    1. C++ GUI Qt4编程第三章,增加spreadsheet. 2. spreadsheet.h /**/ #ifndef SPREADSHEET_H #define SPREADSHEET_H ...

  9. C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar

    1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...

  10. C++ GUI Qt4编程(08)-3.2spreadsheet-resource

    1. C++ GUI Qt4编程第三章,图片使用资源机制法. 2. 步骤: 2-1. 在resource文件夹下,新建images文件,存放图片. 2-2. 新建spreadsheet.qrc文件,并 ...

随机推荐

  1. selenium使用ChromeDriver

    什么是ChromeDriver? ChromeDriver是Chromium team开发维护的,它是实现WebDriver有线协议的一个单独的服务.ChromeDriver通过chrome的自动代理 ...

  2. 学习PDO啦

    通过查找资料对PDO有了一定的了解,PDO(PHP Data Object )为PHP数据对象,为PHP访问数据库提供了一个轻量级的借口,但PDO本生不能实现访问数据库的任何功能,只能通过数据库的PD ...

  3. 认识Filter

    1). Filter 是什么 ? ①. JavaWEB 的一个重要组件, 可以对发送到 Servlet 的请求进行拦截, 并对响应也进行拦截. ②. Filter 是实现了 Filter 接口的 Ja ...

  4. docker搭建gitbook服务

    Gitbook Gitbook简介 GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git ...

  5. 二度Xml<2>

    一下介绍xml的基本操作,添加xml新节点: 其他方法在前一篇日记中有详细讲解,请详见:http://www.cnblogs.com/fjsnail/archive/2012/10/20/273212 ...

  6. 关于Pascal(帕斯卡)以及Camel(驼峰)命名法

    小驼峰式命名法(lower camel case): 第一个单字以小写字母开始:第二个单字的首字母大写,例如:firstName.lastName,也被称为Camel命名法. 大驼峰式命名法(uppe ...

  7. adb命令安装及卸载应用

    一.手机连接电脑,检测手机是否已开启授权并连接成功 adb devices 二.安装应用 adb install UYUN-CARRIER-Android.apk 三.卸载应用 1.查看应用包名 ad ...

  8. .net 空接合操作符 ??

    C# 提供了一个所谓的 ”空接合操作符“ - 即??操作符,他要获取两个操作数. 假如左边的操作数部位null,就返回这个操作数.如果左边的操作数为null就返回右边. 空接合操作符一个妙处在于,它既 ...

  9. touchmove和touchend的使用

    touchstart:当手指触摸屏幕时触发:即使已经有一个手指放在了屏幕上也会触发.touchmove:当手指在屏幕上滑动时连续的触发.在这个事件发生期间,调用preventDefault()可阻止滚 ...

  10. LSI SAS3IRCU配置SAS3系列RAID卡

    LSI SAS3IRCU配置SAS3系列RAID卡 一.适用的controller LSISAS3008 LSISAS3004 二.名词解释 Controller: IR: Volume: 卷,基于物 ...