上位机图像处理和嵌入式模块部署(树莓派4b和linux qt c++开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们说过了pyqt5,用python其实是可以一样开发qt界面的。但是还是有一些朋友觉得不是很方便,他们认为应该和windows平台一样,用c++语言开发更好一点。这样,相关的c++开发经验、sdk使用经验都可以无痛移植到linux平台上。这一点是可以理解的。

        不过在树莓派4b安装qt的时候,很多同学都犯了难。按照网上说的sudo apt-get install qt5-default的说法,其实是没有办法安装成功的。因为qt5-default安装包,已经不在最新的软件源里面了,想要安装,我们得想其他的办法。

1、安装qt5开发的子包

        本身qt5-default就是一个qt5的集合,既然安装不了集合,我们安装一下它的子包也行,效果也是一样的。安装的方法如下所示,

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator

2、准备main.cpp代码

        既然安装好了软件开发包,下面就是准备代码了。测试代码最好还是让chatgpt替我们来完成,这样效率比较高一点。既然我们对qt的编程也是比较了解的,其实最后看一下代码能不能编译通过、能不能正常运行就可以了。不妨,我们把软件命名为main.cpp,

#include <QApplication>
#include <QPushButton>
#include <QMessageBox>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // 创建一个主窗口
    QWidget window;
    window.resize(250, 150);
    window.setWindowTitle("简单Qt示例");

    // 创建一个按钮,并设置按钮的文本
    QPushButton button("显示对话框", &window);
    button.setGeometry(10, 10, 150, 30);

    // 连接按钮的点击事件到槽函数
    QObject::connect(&button, &QPushButton::clicked, [&]() {
        // 创建一个消息框
        QMessageBox::information(&window, "提示", "你点击了按钮!");
    });

    // 显示窗口
    window.show();
    // 运行应用程序
    return app.exec();
}

3、编译

        这里我们就没有用qtcreator进行编译了,总觉得用g++更加方便一点。只需要把对应的头文件位置、动态库位置、动态库文件准备好了就行。反正linux的编译,万变不离其宗,

g++ -std=c++11 -o myapp main.cpp -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtWidgets -lQt5Core -lQt5Widgets -lQt5Gui -lQt5DBus -lQt5XcbQpa -lpthread

        如果涉及到ui文件和Q_OBJECT,那么就会涉及到uic命令和moc命令。uic是解决ui文件的问题,而moc是解决Q_OBJECT的问题。这样,windows qt的代码也能很容易移植到到linux平台上来。

uic QtWidgetsApplication.ui -o ui_QtWidgetsApplication.h
moc -o  moc_QtWidgetsApplication.cpp QtWidgetsApplication.h
g++ main.cpp QtWidgetsApplication.cpp  moc_QtWidgetsApplication.cpp -o main -I /usr/include/aarch64-linux-gnu/qt5 -I /usr/include/aarch64-linux-gnu/qt5/QtWidgets -I /usr/include/aarch64-linux-gnu/qt5/QtGui -I /usr/include/aarch64-linux-gnu/qt5/QtCore -lQt5Widgets -lQt5Gui -lQt5Core

4、测试和验证

        如果编译没问题,至少可以生成myapp这个可执行程序,接下来就要看看这个可执行程序是不是能正常启动起来。在mobaxterm界面上,直接输入./myapp即可,不出意外的话,就可以看到跳出一个界面,单击其中的按钮,会有一个窗口弹窗跳出来,

5、使用qt creator开发

        如果大家不喜欢在命令行开发,使用图形界面开发也是可以的。首先确认一下有线或者无线的地址。比如说,树莓派4b连接到一个wifi上面,可以用软件局域网扫描一下。接着,用realvnc viewer连接这个ip地址,就可以登录界面开发了。最后,就是在programming里面打开qt creator就可以了。

        有了creator,就可以依次创建项目、编译代码、编译和执行了。

        这里创建的时候,我是直接选择了cmake编译。编译没问题的话,可以直接运行可执行程序了。对于ui文件的创建和编辑,也是可以在qt creator进行的。最终,如果项目关闭了,希望重新打开,用qt creator打开对应的CMakeLists.txt就可以了。

        没有问题的话,运行的效果就是这样的,

6、c++版qt和pyqt5使用的场合

        如果本身界面功能不多,就是为了调试和测试使用的,那么用c++版本、python版本都是可以的。可能pyqt5更简单一点。但是如果界面功能比较多,不仅仅是界面本身,还涉及到业务,这时候确实c++更方便一点。当然c++也有自己的问题,那就是python上手会比较快,但是c++的话,要招聘到合适的开发者,并且成本在自己能力范围之内,这也是比较困难的事情。

        所以说,在linux上开发qt的时候,是使用c++,还是使用pyqt5,完全看自己的需求、成本控制和项目的数量来决定的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值