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
即可编译,运行生成的二进制文件即可。
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者
热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利