Qt概念和快捷键

Qt简介

       1Qt的由来和发展

Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。

1991年,Haavard和Eirik开始一起合作设计、编写最终成为Qt的那些类。在随后的一年中,Eirik提出了“信号和槽”的设想——一个简单并且有效的强大的图像用户编程规范。而现在,他已经可以被多个工具包实现。

1994年成为两位年轻程序员不幸的一年,他们没有客户,没有资金,只有一个未完成的产品,但是他们希望能够闯进一个稳定的市场。幸运的是,他们的妻子都有工作并且愿意为她们的丈夫提供支持。在这两年里,Haavard和Eirik人为,他们需要继续开发产品并且从中赚的收益。

1995年4月,通过Haavard就读过的大学的一位教授的联系,挪威的Metis公司与他们签订了一份基于Qt进行软件开发的合同。大约在同一时间,公司雇用了Amt Gulbrandsen,在公司工作的六年时间里,他设计并实现了一套独具特色的文档系统,并且对Qt的代码也做了不少贡献。

1995年5月20日,Qt0.9被上传到sunsite.unc.edu。6天后,在comp.os.linux.announce上发布。这是Qt第一个公开发行的版本。Qt既可以在Windows上的程序开发,又可以用于UNIX上的程序开发,而且在这两种平台上,都提供了相同的应用程序编程接口。从第一天起,Qt就提供了两个版本的软件许可协议版本。一个是进行商业开发所需要的商业版本,一个是适用于开源开发的自由软件许可版本。Metis的合同确保了公司的发展,然而,在长达十个月的时间内,在没有任何人购买Qt的商业许可协议。

1996年3月,欧洲航天局(European Space Agency)购买了10分Qt的商用许可协议,他成了第二个Qt用户。凭着坚定的信念,EEirik和Haavard有雇佣了另外一名开发人员。Qt 0.97在同年5月底正式发布,随后在1996年9月24日,Qt1.0正式面世。到了这一年的年底,Qt的版本已经发展到了1.1.共有来自8个国家的客户买了18分商用许可协议。也就是在这一年,在Matthias Ettrich的带领下,创立了KDE项目。

Qt 1.2于1997年4月发布。Matthias Ettrich利用Qt建立KDE的决定,使Qt成为Linux环境下开发C++图像用户界面的事实标准。Qt1.3于1997年9月发布。

Matthias Ettrich在1998年加入公司,并且在当年9月,发布了Qt 1系列的最后一个版本——V1.40.199年6月,Qt 2.0发布,该版本有有一个新的开源许可协议——Q公共许可协议(QPL,Q Public License),他与开源的定义一直。1999年8月,Qt赢得了LinuxWorld的最佳奖/工具奖。大约在这个时候,Trolltech Pty Ltd成立了。

2000年,公司发布了Qt/Embedded Linux,它用于Linux嵌入式设备。Qt/Embedded Linux提供了自己的窗口系统,并且可以作为X11的轻量级替代产品。现在,Qt/X11和Qt/Embedded Linux 除了提供商业许可协议之外,还提供了广为使用的GNU通用公共许可协议(GPL,General Public License)。2000年底,成立了Trolltech Inc,并发布了Qtopia的第一版,他是一个用于移动电话和掌上电脑的环境平台。Qt/Embedded Linux在2001年和2002年两次获得了Linux World的“Best Embedded Linux Solution”奖,Qtopia Phone也是在2004年获得了同样的荣誉。

2001年,Qt 3.0发布。现在,Qt已经可用于Windows、MacOS、NUIX、和Linux(桌面和嵌入式)平台。Qt 3 提供了42个新类和超过500000行代码。Qt3是自Qt2以来前进历程中最为重要的一步,他在诸多方面上都进行了改良,包括本地化和统一字符编码标准的支持、全新的文本查看和编辑窗口部件,以及一个类似于Perl正则表达式的类等。2002年,Qt3赢得了Software Develpment Times 的“Jolt Productivity Award”。

2005年夏,Qt 4.0发布,他大约有500个类和9000多个函数,Qt4.0比以往的任何一个版本的都要全面和丰富,并且他已经裂变成多个函数库,从而是开发人员可以根据自己的需要只连接需要的Qt部分。相对于以前的Qt版本,Qt4 的进步是巨大的,他不仅彻底的对高效易用的模板容器、高级的模型/视图功能、快速而灵活的二维绘图框架和强大的统一字符编码标准的文本查看和编辑类进行了大量的改进,更不必说对那些贯穿整个Qt类中的成千上万个小的改良。现如今Qt已经超越了作为图形用户界面工具包的界限,逐渐成长为一个成熟的应用程序开发框架。Qt4 也是第一个能够在其所有可支持的平台上既可以用于商业开发又可以用于开源开发的Qt版本。

同在2005年,公司在北京开设了一家办事处,以便于中国及其销售区域内的用户提供服务和培训,并且为Qt/EmdeddedLinux 和 Qtopia提供技术支持。

通过获取一些非官方的语言绑定件(language bindings),非C++程序员也可以使用Qt,特别适用于Python程序员的PyQt语言绑定件。2007年,公司也发布了用于C#程序员的非官方语言绑定键Qyoto。同一年,QtJambi投放市场,他的一个官方支持的Java版本Qt应用程序编程接口。

自奇趣科技公司诞生以来,Qt的声望经久不衰,而且至今依旧持续高涨。取得这样的城进不进说明了Qt的质量,而且也说明人们都非常喜欢应用它。在过去的十年中,Qt已经从一个只被少数专业人士所熟悉的“秘密”产品,发展到了如今遍及全世界拥有数以千计的客户以及数以万计的开源开发人员的产品。

参考文献:C++ GUI with Q4编程

 

       3、为什么选择Qt

优良的跨平台特性

Qt支持下述平台:

  1. MS/Windows - 95、98、NT4.0、ME、2000、XP 、Vista、Win7、win8、win2008、win10
  2. Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
  3. Macintosh -Mac OS X
  4. Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE
  5. Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo

面向对象

Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。

丰富的API

Qt包括多达250个以上的C++类,还提供基于模板的collections、serialization、file、I/O device、directory management和date/time类。甚至还包括正则表达式的处理功能。

支持2D/3D图形渲染,支持OpenGL

大量的开发文档

XML支持

 

Qt Creator 常用快捷键

 

1、  F4 实现xx.cpp和xx.h之间的切换

2、  Ctr + Enter 强制换到下一行

Ctr + Shift + Enter 强制换到上一行

3、  Alt + Enter 添加定义(前提:在xx.h文件中方法只是声明,未实现定义)

4、  Ctrl + i 自动缩进选中代码

5、  Ctr + ] 或 [ 实现光标在代码块间切换

6、  home 键和 end键 跳到当前行首或尾

7、  Ctrl + l 跳到某一行

8、  Ctrl + Shfit + r 更改变量名

9、  Ctrl + Shfit + up 实现当前行代码上移

Ctrl + Shfit + down 实现当前行代码下移

10、Ctrl + m 添加/删除书签

11、Ctrl + e 再按2键实现上下分栏

Ctrl + e 再按3键实现左右分栏

Ctrl + e 再按1键删除掺分栏

Ctrl + e 再按0 键删除当前分栏

12、Ctrl + Tab 快速切换已打开的文件

13、Alt + (1-7) 打开对应的输出窗口

14、Esc 隐藏输出窗口

15、Ctrl + k 查看当前打开文档

16、Ctrl + 鼠标左键 跳到定义

17、Ctrl + b 编译工程

18、Ctrl + r 运行工程

19、Ctrl + / 注释行、取消注释行

20、Ctrl + Shift + < 折叠代码块

Ctrl + Shift + > 展开代码块

Qt概念和快捷键的更多相关文章

  1. 【Qt】Qt Creator键盘快捷键速查

    附录 Qt Creator键盘快捷键速查 一般操作的键盘快捷键 操作 快捷键 操作 快捷键 打开文件或项目 Ctrl+O 新建文件或项目 Ctrl+N 在外部编辑器中打开 Alt+V,Alt+I 选择 ...

  2. QT creator 编辑器快捷键

    QT creator 编辑器快捷键 一.快捷键配置方法:   进入“工具->选项->环境->键盘”即可配置快捷键.     二.常用默认快捷键:       编号 快捷键 功能 1 ...

  3. Qt Creator 常用快捷键 详细总结

    下面是我总结的一些Qt Creator 常用快捷键 ,可以大大提高我们使用Qt开发项目的效率!! Qt Creator 常用快捷键 快捷键 介绍 F1 查看帮助文档 Shift + F2 函数的声明和 ...

  4. Qt Creator键盘快捷键速查

    原地址:http://bbs.qter.org/forum.php?mod=viewthread&tid=904&extra=page%3D2 一般操作的键盘快捷键 操作 快捷键 操作 ...

  5. 如何设置qt creator的快捷键

    如何设置qt creator快捷键 以设置设置edit - select encoding的快捷键为例 1. tools - options - environment - keyborad 2.在搜 ...

  6. QT 按键处理 快捷键处理 shift + ctrl

    原味地址:http://www.cnblogs.com/codingmylife/archive/2010/08/30/1812739.html CTRL+Enter发送信息的实现 在现在的即时聊天程 ...

  7. 25 面向对象编程 继承概念 代码 快捷键 super注意点

    继承概念 继承的本质是对某一批的抽象,从而实现对现实世界更美好的建模. extends的意思的"扩展".子类是父类的扩展. JAVA中类只有单继承,没有多继承!理解:一个儿子只能有 ...

  8. Qt Creator Shortcuts 快捷键大全

    编号 快捷键 功能 1 Esc 切换到代码编辑状态 2 F1 查看帮助(选中某一类或函数,按下F1,出现帮助文档) 3 F2 在光标选中对象的声明和定义之间切换(和Ctrl+鼠标左键一样的效果,选中某 ...

  9. Chapter1:Qt概念

    信号和槽1.信号与槽机制的连接方式(1):一个信号可以与另一个信号相连,代码如下: connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1)); ...

随机推荐

  1. Java基础笔记(五)——数据类型转换

    数据类型的精度由低到高为:byte < short < char < int < long < float < double 低精度的类型与高精度的类型在进行运算时 ...

  2. Arrange the Bulls

    题目链接 #include <stdio.h> #include <algorithm> #include <string.h> #include <iost ...

  3. 在github上下载子文件夹(svn命令)

    Q: 平时都是用git clone这个命令从github中克隆出完整的文件,但有时我们仅需要其中某个文件夹时,该如何下载? A: 可以使用svn命令来完成. 具体用法:(以视觉slam14讲的gith ...

  4. PAT甲级——1111 Online Map (单源最短路经的Dijkstra算法、priority_queue的使用)

    本文章同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90041078   1111 Online Map (30 分) ...

  5. C# ExpandoObject用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  6. HDU-1068-GirlsandBoys(最大独立集,二分图匹配)

    链接:https://vjudge.net/problem/HDU-1068#author=0 题意: 学校对n个学生(男女都有)进行的调查了,发现了某些学生暗生情愫,现在需要你选出一个最大的集合,这 ...

  7. Codeforces 1C(外接圆与正多边形)

    要点 各点肯定都在外接圆上,边越多越接近圆面积,所以要最小面积应当取可能的最少边数. 给三角形求外接圆半径公式:\(R=\frac{abc}{4S}\). 三个角度对应的圆心角取gcd即是要求的正多边 ...

  8. java中两个map比较

    一 /** * 用map的keySet()的迭代器(性能效率较低) * */ public void compareMap1 (){ Map<String, String> m1 = ne ...

  9. FastDFS整合Nginx

    浏览器访问FastDFS存储的图片需要通过Nginx访问 需要安装fastdfs-nginx-module.Nginx 安装fastdfs-nginx-module模块 (1)将fastdfs-ngi ...

  10. javascript中两种基本常用排序算法分析

    备注:内容大部分从网上复制,代码为自己手写.仅做知识的温故知新,并非原创. 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两 ...