最近想学一种桌面应用开发技术,之前大学的时候因为课程原因,学了下javafx
,但是个人不喜欢java,后面就没深入去学,现在基本上忘了。后来毕业前准备找工作的时候学了两天Qt
,当时只学了一些简单的GUI设计,结果面试没过😭,也没深入去学。再然后玩博客的时候,接触了一些前端的技术,发现有很多桌面应用是基于Electron
开发的,这东西感觉挺不错的,跨平台,而且开发出来的界面很好看,不过貌似比较占用资源。
最后还是打算学Qt,Qt有C++和python接口,而且跨平台,能在windows、linux和mac上跑,因为之前学过一点点,所以上手会快一点吧。
安装
Anaconda里包含Qt的库和相关的工具,所以安装好Anaconda,把Anaconda加到PATH环境变量就能用Qt了。
如果没装Anaconda的话,也可以用apt命令安装Qt:
1 | sudo apt-get install qt5-default |
hello world
这里我打算用C++来写Qt,听说用python来写会简单一点,习惯python的小伙伴可以尝试一下,接口很相似的。Qt有个官方的IDE,叫Qt Creator,实际上不用这个IDE也可以很方便地写Qt代码,有qmake
和make
就够了,先试试编译一个“hello world”程序吧。
首先创建一个文件夹,在里面新建一个
main.cpp
文件,往里面写代码,代码内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget widget; /* 构造一个窗口 */
widget.setWindowTitle("Hello World"); /* 设置窗口标题 */
widget.show(); /* 显示窗口 */
return app.exec(); /* exec():进入消息循环 */
}代码的功能是用Qt创建一个标题是“Hello World”的窗口,然后显示出来。
然后再新建一个
hello_world.pro
文件,作为Qt的项目文件,把刚刚的main.cpp
加到项目里去:1
2
3
4
5
6# 因为用了QWidget,所以要加上这个
QT += widgets gui
# 把main.cpp加到项目的代码列表里
SOURCES += \
main.cpp最后在文件夹下打开终端,用
qmake
和make
编译,编译好后运行生成的hello_world
程序。1
2
3
4
5mkdir build
cd build/
qmake ../hello_world.pro
make
./hello_world一切顺利的话,可以看到一个标题是“Hello World”的窗口。
vscodium搭建Qt开发环境
主要是.vscode
目录下的三个json文件,一个是tasks.json
,这个是用来配置vscodium编译Qt项目的,其实就是让vscodium运行qmake
和make
命令,可以参考一下我的配置。
1 | { |
然后是launch.json
,用来配置运行或调试编译好的Qt程序。
1 | { |
最后一个是c_cpp_properties.json
,这个用来配置vscodium的语法补全,这个要装C++的插件才行。
1 | { |
配置好以后,打开一个Qt的.pro
项目文件,按F5
编译运行。