Qt 笔记
 
 
 
 
 
 
 
 
 
 
 
贡献者: addis
- Qt Framework 是最大的概念,Qt 的一切都属于 Framework。所有的组件见这里。
- License 选择:以 GPL 或者 LGPL 使用 Qt 都是免费的。LGPL 是说如果你的软件通过动态链接的方式使用 Qt,那么调用的那部分程序不需要开源,只有你修改 Qt 库,才需要把修改后的代码开源。当然也有付费选项。
- Qt Widgets:传统,最受欢迎,复杂界面,更底层的控制,高性能,适合桌面开发,基于 widgets(按钮,文字框,菜单)
- Qt Quick:现代,使用 QML (Qt Meta-Object Language)(类似于 HTML)和 JS,快速开发迭代,更适配触屏和移动端(或者桌面移动混合开发)。
- Qt Creator 是 Qt 的官方 IDE。除此也可以用 Visual Studio 或者 Eclipse
- PyQt 是 Qt C++ 库的老牌非官方 Python wrapper,同样支持 Widget 和 Quick。在创建 Qt Creator 工程的时候可以选择。
- PySide 是 Qt 官方的 Python wrapper,和 PyQt 的 API 基本一样,在 Qt Creator 里面创建工程的时候可以直接用。比 PyQt 对商用更友好,据说功能更多。
- Qt Designer:是 Qt Widgets 的一个所见即所得图形编辑器。
- Qt Design Studio:是 Qt Quick 的一个图形编辑器,可以生成代码。
- 【试了没用】简单的 qt Widget 教程
1. Qt Essentials
- Qt Core:关键的非 GUI 基础类。
- Qt GUI:基础的 GUI 类,包括 OpenGL。
- Qt Network:网络功能库。
- Qt QML:QML 既是模块名,也是一个设计 UI 的语言。
- Qt SQL:支持 SQL 数据库。
- Qt Multimedia:视频,音乐,相机控制等。
2. Qt Add-Ons
- Qt WebEngine:把网页内容做成桌面 app(类似于 Electron 吧),相当于一个浏览器。
- Qt WebView:比 Qt WebEngine 更轻量级,使用 QML。
- Windows Deploy:制作 Windows 安装包。
- Qt 3D:支持 3D 建模。
- Qt PDF:支持显示 pdf(不支持移动端)
3. 安装
命令行安装 Qt5(推荐)
- 如果有,就用
suao apt install qt5-default
- 在
20.04
以上的系统暂时没有 qt5-default
,可以用 sudo apt install build-essential qtcreator
- MacOS 用 HomeBrew:
brew install qt@5
官方安装(占用很多储存)
- 找到安装包下载地址
- 下载对应系统的在线安装包(推荐,离线安装包可能版本比较老),是图形界面。默认会安装到用户 home 文件夹。
- 在线或离线安装包,是
.run
文件,运行 chmod +x *.run
,然后 ./*.run
,弹出 GUI,登录,配置,开始下载。
图 1:Qt 安装:选择组件(图中的选项大概需要下载 2.3GB,安装后占 11GB)
4. 简单的 Qt5 例子(Ubuntu 22.04)
图 2:运行结果:按下按钮会显示 “Hello, world!”
- 第一个编译成功的例子(不需要 qt creator):使用
sudo apt install qtbase5-dev build-essential
(只有 1MB)。如无意外会有 broken package,把 apt
换成 aptitude
,然后选一个合适的解决方案。
- 只需要创建两个文件:
代码 1:main.cpp
#include <QApplication>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QMainWindow>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QMainWindow window;
QWidget centralWidget;
QVBoxLayout layout;
QPushButton button("Click me!");
QLabel label;
QObject::connect(&button, &QPushButton::clicked, [&]() {
label.setText("Hello, world!");
});
layout.addWidget(&button);
layout.addWidget(&label);
centralWidget.setLayout(&layout);
window.setCentralWidget(¢ralWidget);
window.show();
return app.exec();
}
代码 2:CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(qt_example)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5Widgets REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
运行 cmake .
然后 make
即可。
- 编译好以后也可以直接用 Qt-creator 打开 CMakeLists.txt 文件进行调试(apt 安装的 qtcreator 貌似有兼容问题,可以直接从官网下载 Qt-creator 单独的安装包。
- Qt-creator 中运行 cmake,运行 build,然后选中
main.cpp
然后设置断点,运行 Debug 即可调试。
5. MacOS 编译
- 安装 Homebrew 然后
brew install qt@5
-
brew install qt@5
- 在 CMakeLists.txt 目录下运行
cmake . -DCMAKE_PREFIX_PATH=/path/to/qt5
,和 make
即可编译,运行生成的二进制文件即可。
 
 
 
 
 
 
 
 
 
 
 
© 小时科技 保留一切权利