阡陌 发表于 2023-12-25 22:19:14

Qt 往事



!(https://file.mculoop.com/images/2022/11/qtbanner_1668587316.jpg)

那是 1990 年的一个夏日,Haavard 与 Eirik 暂时从繁重的项目中解脱,他们难得如此慵懒地倚坐在斑驳的树荫下。

“咳~”,Haavard 感叹道,仿佛得到解脱。

Eirik :“咋的了哥们?”(你不是明知故问吗~)

“这么干下去不是个事儿啊!大好的光阴就从指间流去,抓也抓不住……”,Haavard 盯着手里的光斑,直愣愣地说。


<!--more-->


“是啊,累得像条狗,连小伙伴们办的舞会都没能去参加,这可怎么处对象呀……我可不想做单身狗……”,Eirik 简直要爆发了,但紧接着就把目光缓缓地从 Haavard 的眼睛移开。是啊,那又有什么办法呢。

“对,我们需要一款面向对象的显示系统!”,Haavard 恍然大悟地说。

听到“对象”一词 Eirik 变得容光焕发,他陷入了对未来的幻想……

以上故事是有节操地虚构的,不过在这次谈话中面向对象跨平台的 GUI 框架思想是确定下来了,接下来几年他们一步一个脚印地开发着,直到 1995 年 5 月 20 日 Qt 0.90 for X11/Linux 版的正式发布,一株嫩芽破土而出。

!(https://file.mculoop.com/images/2022/11/181624lvnnv36f593c592i_1668149338.jpeg)

接触 Qt 也有几年了,不过之前更多地是在用 Borland C++ Builder ,而如今传奇已不在,遂决定投身 Qt 阵营。其实对于业余的人而讲,灵活用好一个就够了。Qt 就是这样一种灵活的框架,不仅支持 Linux, OS X, Windows 等传统的计算机三大操作系统,还支持 Android, iOS 两大智能机操作系统,还有 VxWorks 等嵌入式实时操作系统。对于这种多平台通吃的框架,还是很有必要深入学习一下的。与我们常听说的基于虚拟机的 Java 的“一次编译,到处运行”机制所不同的是,因为是 C++ 语言,所以只能做到“一次编写,到处编译”。

刚才也提到了,Qt 不是一种语言,而是一个 C++ 的编程框架。它使用了 MOC ( Meta-Object Compiler ) 作为预处理器,先将信号、时槽等扩展特性解释为标准 C++ ,然后交由标准 C++ 编译器( Clang、GCC、ICC、MinGW、MSVC 等)编译。

!(https://file.mculoop.com/images/2022/11/181624nbv0wbdd5gvvivd2_1668149403.jpeg)

为什么聊 Qt 呢,因为我想在接下来的时间里深入学习一下这个框架,随时发表一些学习心得,这篇算是一个引子吧。“十年磨一剑,霜刃未曾试”,2015 年,就开始用用这把被磨砺了 20 年的宝剑吧!

!(https://file.mculoop.com/images/2022/11/181624oj0g802llgd9m9k3_1668149433.gif)

如果需要对 Qt 了解更多,请访问官方关于页面:http://wiki.qt.io/About_Qt


页: [1]
查看完整版本: Qt 往事