前言
这是我第一次使用 C++ 下的 QT 框架进行开发,过去比较常用的是 Python 的 PyQt 进行桌面软件的开发,主要是因为 Python 是真的简单方便。
这次好不容易能回家好好休息一下,当然要试试以前没试过的东西,我在看很多嵌入式教程的时候,如果提到桌面软件开发,都离不开 QT 框架,但我很少有人看到提 PyQT ?
于是我就想看看 C++ 和 Python 下的 QT 框架开发都有什么区别,当然,首先得先配环境。
我的系统:Ubuntu 20.04.3 LTS
下载
QT官网 下载框架的安装包,official_releases > qt > 5.12 > 5.12.12
:
official_releases 正式发布版,是与开发版相对的稳定版 Qt 库和开发工具(可以下载Qt开发环境和源代码)。1 2022-10-11 今天重装发现 offical_releases/qt 中没有发布版,可以从 online_installers 中获取对于平台的 Qt 维护工具
由于服务器问题,正常下会非常慢,可以点击 Details
找到国内镜像进行下载:
安装
赋予安装文件可执行权限,并执行文件:
sudo chmod +x ./qt-opensource-linux-x64-5.12.12.run./qt-opensource-linux-x64-5.12.12.run
官方要求先进行用户登录,没有的话直接注册一个就行(需要邮箱验证):
登录完成后,需要许可证,没有的话选择 “I’m an individual and do not use Qt for any company” 即个人使用。
之后需要配置软件的安装路径和需要添加的环境组件,个人添加如下2:
开发库 | 说明 |
---|---|
Desktop gcc 64-bit | GCC 64-bit 下的 Qt 库 |
Android *** | 安卓的开发环境 |
Sources | 源代码 |
QT *** | Qt 的各种附加组件 |
QT Script | Qt Scritp(Deprecated)是脚本模块,已被抛弃,不建议安装 |
剩下就没什么注意的了:
测试
这里我尝试做一个通过按键修改文字的示例。
首先,运行 Qt Creater 软件。
新建一个 Qt Widgets Application :
选择项目文件中的 Forms/mainwindow.ui
,进入 QT 的 UI 设计:
设计如下 UI ,一个 PushButton 控件和一个 Label 控件:
点击当前界面的最小角的绿色三角形按钮(Run)或 Ctrl+R 运行一次当前代码:
关闭后,右键你添加的 PushButton 控件,选择 连接槽 后,进入代码编辑界面,将代码修改至如下:
bool flag = true;
void MainWindow::on_pushButton_clicked(){ if (flag) { ui->label->setText(""); flag = false; } else { ui->label->setText("Hello! Here is 单线程R!!! "); flag = true; }}
完成后,再次运行代码试试效果:
Nice!
错误
Qt Creater 中无法输入中文
在我使用搜狗输入法尝试在界面中输入中文时,出现了无法中文的问题,原因 Qt 需要安装一个 fcitx 插件才能正常输入中文3。
首先使用如下指令查对应插件的位置:
dpkg -L fcitx-frontend-qt5 | grep .so
该指令会返回对应插件的位置:
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
没有的话可以尝试使用 apt 安装插件,再重复上面的步骤找到插件即可:
sudo apt install fcitx-frontend-qt5
然后需要我们将该插件拷贝到 Qt 的插件目录,并对它赋予可执行权限,并重启 Qt Creater ,再次进入就能成功输入中文了:
cd Qt安装路径/Tools/QtCreator/lib/Qt/plugins/platforminputcontextscp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ./chmod +x libfcitxplatforminputcontextplugin.so