任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。
或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的CEO,Haarard Nord和Trolltech公司的总裁Eirik Chambe-Eng在联合发明Qt的时候并没有一个很好的名字。在这里,字母Q是Qt库中所有类的前缀——这仅仅是因为在Haarard的emacs的字体中,这个字母看起来特别的漂亮;而字母t则代表“toolkit”,这是在Xt( X toolkit )中得到的灵感。
顺便说句,Qt原始的公司就是上面提到的Trolltech,貌似有一个中文名字是奇趣科技——不过现在已经被Nokia收购了。因此,一些比较旧的文章里面会提到Trolltech这个名字。
好了,闲话少说,先看看Qt的开发吧!事先说明一下,我是一个比较懒的人,不喜欢配置很多的东西,而Qt已经提供了一个轻量级的IDE,并且它的网站上也有for Eclipse 和 VS 的开发插件,不过在这里我并不想用这些大块头 :)
Qt有两套协议——商业版本和开源的LGPL版本。不同的是前者要收费,而后者免费,当然,后者还要遵循LGPL协议的规定,这是题外话。
Qt的网址是https://qt.nokia.com/downloads,不过我打开这个站点总是很慢,不知道为什么。你可以找到大大的 LGPL/Free 和 Commercial,好了,我选的是LGPL版本的,下载包蛮大,但是下载并不会很慢。下载完成后安装就可以了,其它不用管了。这样,整个Qt的开发环境就装好了——如果你需要的话,也可以把qmake所在的目录添加进环境变量,不过我就不做了。
安装完成后会有个Qt Creator的东西,这就是官方提供的一个轻量级IDE,不过它的功能还是蛮强大的。运行这个就会发现,其实Qt不仅仅是Linux KDE桌面的底层实现库。而且是这个IDE的实现 :) 这个IDE就是用Qt完成的。
Qt Creator左面从上到下依次是Welcome(欢迎页面,就是一开始出现的那个);Edit(我们的代码编辑窗口);Debug(调试窗口);Projects(工程窗口);Help(帮助,这个帮助完全整合的Qt的官方文档,相当有用);Output(输出窗口)。
下面我们来试试我们的 Hello, world! 吧!
在Edit窗口空白处点右键,有 New project... 这里我们选第三项,Qt Gui Application。

然后点击OK,来到下一步,输入工程名字和保存的位置。
点击Next,来到选择库的界面。这里我们系统默认为我们选择了Qt core 和 GUI,还记得我们建的是Gui Application吗?嗯,就是这里啦,它会自动为我们加上gui这个库。现在应该就能看出,Qt是多么庞大的一个库,它不仅仅有Gui,而且有Network,OpenGL,XML之类。不过,现在在这里我们不作修改,直接Next。
下一个界面需要我们定义文件名,我们不修改默认的名字,只是为了清除起见,把generate form的那个勾去掉即可。
Next之后终于到了Finish了——漫长的一系列啊!检查无误后Finish就好啦!
之后可以看到,IDE自动生成了四个文件,一个.pro文件,两个.cpp和一个.h。这里说明一下,.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。这里我们先不去管它。main.cpp里面就是一个main函数,其他两个文件就是先前我们曾经指定的文件名的文件。
现在,我们把main.cpp中的代码修改一下:
#include <QtGui/QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
        QApplication a(argc, argv);
        QLabel *label = new QLabel("Hello, world!");
        label->show();
        return a.exec();
}
修改完成后保存。点击左下角的绿色三角键,Run。一个小小的窗口出现了——
好了!我们的第一个Qt程序已经完成了。
PS:截了很多图,说得详细些,以后可就没这么详细的步骤啦,嘿嘿…相信很多朋友应该一下子就能看明白这个IDE应该怎么使用了的,无需我多费口舌。呵呵。
下一篇中,将会对这个Hello, world!做一番逐行解释!

转载于:https://blog.51cto.com/devbean/194031

Qt学习之路(2):Hello, world!相关推荐

  1. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  2. 对QT学习之路12-14的源代码补充与修正

    QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

  3. java qt gui_工控编程,Qt 学习之路

    原标题:工控编程,Qt 学习之路 Qt 是一个著名的 C++ 库--或许并不能说这只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI.使用 Qt,在一定程序上你获得的是一个"一站 ...

  4. Qt学习之路_12(简易数据管理系统)

    原文地址为: Qt学习之路_12(简易数据管理系统) 前言 最近从大陆来到台湾,之间杂事很多,挤不出时间来更新博客- 这次主要是通过做一个简易的数据库管理系统,来学习在Qt中对数据库,xml,界面的各 ...

  5. QT学习之路2 学习笔记

    QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...

  6. 《Qt 学习之路 2》

    Home / Qt 学习之路 2 / <Qt 学习之路 2>目录 <Qt 学习之路 2>目录 序 Qt 前言 Hello, world! 信号槽 自定义信号槽 Qt 模块简介 ...

  7. QT学习之路(一)ubuntu 18.04的Qt Creator在线安装

    文章目录 前言 一.准备工作 二.安装步骤 参考链接 前言 Qt是嵌入式开发的必备工具之一,在Linux下安装尤其重要. Qt是C++的一个库,或者说是开发框架,里面集成了一些库函数,提高开发效率. ...

  8. Qt学习之路(24): QPainter(改写paintEvent)

    Qt学习之路(24): QPainter(改写paintEvent) 多些大家对我的支持啊!有朋友也提出,前面的几节有关event的教程缺少例子.因为event比较难做例子,也就没有去写,只是把大概写 ...

  9. [记录]学习QT学习之路2第四天

    今天学习内容对应<<QT学习之路2>>第18到23部分,主要是有关于QT事件这一部分的内容(=_=真是看到我快吐了,感觉这本书不适合我这种初学者). 先放出思维导图 难点总结 ...

  10. [记录]QT学习之路2学习第三天

    今天的内容对应的是<<QT学习之路2>>第13到17部分. 主要内容由思维导图总结 一,什么是QT对话框 二,什么是QT标准对话框 三,怎么样实现QT对话框数据传递 四,深入了 ...

最新文章

  1. 笔记本电脑性价比排行2019_办公笔记本电脑排名2019 五款适合办公的笔记本电脑推荐...
  2. 1.9 Java 9增强的自动资源管理
  3. Oracle大的存储层次体系,Oracle 数据库中的逻辑存储层次体系
  4. 插入数据类型为DateTime时为空值时,为什么SQL SERVER会自动加上1900-01-01
  5. [css] 说下你对background-size的理解,它有什么运用场景?
  6. Qt工作笔记-对qmake的认识【两篇转载结合】
  7. 【Clickhouse】Clickhouse 表引擎之 Log系列
  8. CSS 浅析position:relative/absolute定位方式
  9. 数据科学之——大数据体系
  10. HyperLedger Composer升级fabric链码
  11. 基于STC89C52的自动循迹小车项目
  12. JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】
  13. 2021年危险化学品经营单位安全管理人员考试内容及危险化学品经营单位安全管理人员最新解析
  14. python-绘图与可视化
  15. 【语义分割】一文概览主要语义分割网络,FCN、UNet、SegNet、DeepLab
  16. Unity脚本(四)
  17. LaTeX插入GIF的标准方法
  18. RxAndroid 与OkHttpClient打造下载实例
  19. python秒杀神器苏宁_Python苏宁易购免费试用申请一键执行脚本源代码
  20. Bootstrap Studio 6.0.2 Crack

热门文章

  1. zookeeker如何解决HBase单节点故障
  2. Tornado,了解一下
  3. Android 安全提示 笔记
  4. Single forest vs. multi-forest Active Directory design
  5. flink的Table类型的变量两种输出的形式
  6. Python中的Mixin详解
  7. R语言版本查询以及line 1 of `undefined.cases': bad value of `47.25' for attribute `A2'的解决
  8. Linux 向文件末尾追加命令(转载)
  9. 一个NVIDIA驱动安装报错——ERROR: The nvidia kernel module was not created.
  10. python变量定义类型_03_python的数据类型和变量的定义及使用