Qt 深入浅出
经常有人问哪里有学习Qt的资料,Qt的教程,怎么才能入门等等,或者抱怨说中文的信息太少。其实网上有很多关于Qt的学习资料,今天在这里总结一下,希望各位想学习Qt的同学,各取所需,早日从入门到精通!
Part 1: 新手上路
Qt 官方学习教程
Qt 官方学习教程包含了3部分,包括如何学习Qt,如何逐步创建一个地址簿应用以及如何编写Qt Widget。教程由浅入深,Qt初学者必读
如何学习 Qt
我们假定您已了解 C++, 并将用于 Qt 开发。有关将 Qt 与其他编程语言一起使用的更多信息,请参见 Qt 网站。。。。。
地址簿教程
本教程介绍了使用 Qt 跨平台框架的 GUI 编程。在学习过程中,我们将了解部分 Qt 基本技术,如Widget 和布局管理器,容器类,信号和槽,输入和输出设备等。。
Widgets 教程
Widget 是使用 Qt 编写的图形用户界面 (GUI) 应用程序的基本生成块。每个 GUI 组件,如按钮、标签或文本编辑器,都是一个 widget ,并可以放置在现有的用户界面中或作为单独的窗口显示。每种类型的组件都是由 QWidget 的特殊子类提供的,而 QWidget 自身又是 QObject 的子类。
Qt 学习之路:
来自于FinderCheng的Qt 学习之路。简介:在本系列文章中,FinderCheng使用Qt4进行C++ GUI的开发。我是参照着《C++ GUI Programming with Qt4》一书进行学习的。其实,我也只是初学Qt4,在这里将这个学习笔记记下来,希望能够方便更多的朋友学习Qt4。我是一个Java程序员,感觉 Qt4的一些命名规范以及约束同Java有异曲同工之妙,因而从Java迁移到Qt4似乎困难不大。不过,这也主要是因为Qt4良好的设计等等。
Qt学习之路(1):前言
Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的 ,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个 “伟大的C++库”。
Qt学习之路(2):Hello, world!
任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。
Qt学习之路(3):Hello, world!(续)
下面来逐行解释一下前面的那个Hello, world!程序,尽管很简单,但却可以对Qt程序的结构有一个清楚的认识。现在再把代码贴过来:
Qt学习之路(4):初探信号槽
所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就 会发出一个信号。就像是广播一样,如果有了事件,它就漫天发声。这时,如果有一个槽,正好对应上这个信号,那么,这个槽的函数就会执行,也就是回调。就像 广播发出了,如果你感兴趣,那么你就会对这个广播有反应。干巴巴的解释很无力,还是看代码:
Qt学习之路(5):组件布局
顾名思义,绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。但是这样做的 一个问题是,如果用户改变了窗口大小,比如点击了最大化或者拖动窗口边缘,这时,你就要自己编写相应的函数来响应这些变化,以避免那些组件还只是静静地呆 在一个角落。或者,更简单的方法是直接禁止用户改变大小。
Qt学习之路(6): API文档的使用
今天来说一下有关Qt API文档的使用。因为Qt有一个商业版本,因此它的文档十分健全,而且编写良好。对于开发者来说,查看文档时开发必修课之一——没有人能够记住那么多API的使用!
Qt学习之路(7): 创建一个对话框(上)
首先说明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同以后的若干章一起,完成了一个比较完整的程序——一个模仿Excel的电子表格。不过这个程序挺大的,而且书中也没有给出完整的源代 码,只是分段分段的——我不喜欢这个样子,我想要看到我写出来的是什么东西,这是最主要的,而不是慢慢的过上几章的内容才能看到自己的作品。
Qt学习之路(8): 创建一个对话框(下)
Qt是分模块的,记得我们建工程的时候就会问你,使用哪些模块?QtCore?QtGui?QtXml?等等。这里,我们引入QtGui,它包括了 QtCore和QtGui模块。不过,这并不是最好的做法,因为QtGui文件很大,包括了GUI的所有组件,但是很多组件我们根本是用不到的——就像 Swing的import,
Qt学习之路(9):深入了解信号槽
槽函数和 普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者private 的;可以由其它的C++函数调用;参数可以是任何类型的。如果要说区别,就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。
Qt学习之路(10): Meta-Object系统
前面说过,Qt使用的是自己的预编译器,它提供了对C++的一种扩展。利用Qt的信号槽机制,就可以把彼此独立的模块相互连接起来,不需要实现知道模块的任何细节。为了达到这个目的,Qt提出了一个Meta-Object系统。它提供了两个关键的作用:信号槽和内省。
Qt学习之路(11): MainWindow
尽管Qt提供了很方便的快速开发工具QtDesigner用来拖放界面元素,但是现在我并不打算去介绍这个工具,原因之一在于我们的学习大体上是依靠手工编写代码,过早的接触设计工具并不能让我们对Qt的概念突飞猛进
Qt学习之路(12): 菜单和工具条
在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序。虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜单和工具条。
Qt学习之路(13): 菜单和工具条(续)
前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!
Qt学习之路(14): 状态栏
今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。
Qt学习之路(15): Qt标准对话框之QFileDialog
下面还是按照我们的进度,从Qt的标准对话框开始说起。所谓标准对话框,其实就是Qt内置的一些对话框,比如文件选择、颜色选择等等。今天首先介绍一下QFileDialog。
Qt学习之路(16): Qt标准对话框之QColorDialog
继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。
Qt学习之路(tip): parent参数
程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。
Qt学习之路(17): Qt标准对话框之QMessageBox
这次来说一下QMessageBox以及类似的几种对话框。其实,我们已经用过QMessageBox了,就在之前的几个程序中。
Qt学习之路(18): Qt标准对话框之QInputDialog
这是Qt标准对话框的最后一部分。正如同其名字显示的一样,QInputDialog用于接收用户的输入。
Part 2: 进阶学习
Qt4 学习笔记
Qt4 学习笔记(繁体中文) 简体中文(Google 翻译)
来自台湾的caterpillar,Qt4 学习笔记由浅入深,分门别类的介绍了Qt4 中的许多特性,如事件處理,常用圖型元件,常用 API,檔案處理,拖放(Drag & Drop)與剪貼,多執行緒(Multithreading)很多内容,是进一步学习Qt的极好教程
Qt 开发实例
Code Project:创建一个媒体播放器
这里我们将会构建所能想到的最简单和最直观的音乐播放器,给用户提供另一个选择。 从苹果的新款iPod Shuffle吸取一些灵感,只提供最基本的控制功能。
Code Project:创建一个FFMPEG前端
如果说有一种工具非常需要GUI,那就是FFMPEG。FFMPEG是一个十分优秀的命令行应用程序,它可以将视频和电影文件从一种格式转换为另一种格式。
Code Project:创建一个Qt RSS阅读器
这个应用程序就是一个RSS阅读器,它允许用户添加自己的种子,列出该种子上的内容,然后让用户在主应用程序自带的一个浏览器窗口中阅读这些内容。
Qt Graphics View详解
来自清源游民的Qt笔记,详解介绍了Qt Graphics View中各个对象的概念和使用方法。对于Graphics View的学习大有裨益。
Qt 的 Graphics View 框架(一)
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。
Qt 的 Graphics View 框架(二)
Graphics View基于笛卡尔坐标系。item在场景中的位置与几何形状通过x,y坐标表示。当使用未经变形的视图来观察场景时,场景中的一个单位等于屏幕上的一个像素。
Qt 的 Graphics View 框架(三)
QGraphicsView通过QGraphicsView::setMatrix()支持同QPainter一样的仿射变换,通过对一个视图应用变换,你可以很容易地支持普通的导航特性如缩放与旋转。
关于Qt编程的书籍
接下来当你学习了上面的相关内容后,就可以开始阅读Qt编程的书籍进行系统的学习了。当然,书也不一定要从头到尾阅读一遍,用时拿出来学习和参考也很不错
C++ GUI Programming with Qt 4 (2nd Edition) (英文版)
C++ GUI Qt4 编程中文版China-pub购买地址
本书详细讲述了用最新的Qt版本进行图形用户界面应用程序开发的各个方面。前5章主要涉及Qt基础知识,后两个部分主要讲解Qt的中高级编程,包括布局管 理、事件处理、二维/三维图形、拖放、项视图类、容器类、输入/输出、数据库、多线程、网络、XML、国际化、嵌入式编程等内容。对于本书讲授的大量 Qt4编程原理和实践,都可以轻易将其应用于Qt4.4、Qt4.5以及后续版本的Qt程序开发过程中。
支持,顶,嘎嘎
真是QT新手的天堂,感谢!
@touseit
内容还在不断扩充中。;-)
oh~~~nice!!
不错,支持。
很全面的qt教程,从易到难,一步一步深入,进阶,对于一个初学者来说真是很好的地方或者说是天堂了!!!
结构也很不错,内容也充实!~~MARK
这么好的学习资料,对我们这样的初学者真是很好的~~~~~~~~
在这里非常感谢您提供这么好的资料
谢谢您
顶一个。。强烈支持。。
顶一个
支持啊,留下脚印……
今天发布4.6了,博主及时跟进那
博主,我要是不顶你就太对不住良心了
非常感谢楼主!!!!!!!!
太棒了,太感谢了。
最后关于maemo的内容呢?
这个真的是好啊!感谢分享!
牛
期待更多内容。板主做了非常大的大好事
这个博客不错。。。
真的很好啊 kevin 张 ,哈哈 今天终于又找到你的影子了,以后会多多学习,我是小赵 。
今天想了解一下QT,就找到了这里,不错的资料,谢谢作者。
很好,真需要呢!不过有一问题也要请教大家,以大家了解java与Qt相比那个使用在linux下比较好,也可以说比较安全和方便,便于维护升级等?
guoerwuhen !
你好,我想了解一下关于QT注册全局快捷键的一些内容,在网上搜罗了一下发现不能很好的理解和使用,犹豫是初学者很是迷茫,请问有什么例子相关的没?
你好 ,请问一下 qt designer 怎么自定义控件 我是新手 能否说的具体点
so excellent for QT to design my software .Thank you very much.
希望看到更多的內容,thanks^_^
God! Very good!
非常感谢,很难得的学习资源。
新手来学习,谢谢奉献啊
在这里找到很多自己想要的资料,感谢你的分享~
资料确实不少啊!
哇真全面……
太棒了,楼主有心人
thank you!非常全面感觉
总在找QT的相关书籍,看来不用啦,这里便是QT新手的天堂。。。
不错,谢谢!