Xavier安装QT5及charts模块
QT的强大不用多说,其信号-槽机制以及强大的跨平台能力优势明显。下图是Gaosiy在jetson Xavier上用QT开发的带GUI的多节点信号传输程序。
使用了多线程和socket网络编程,关键的关键是,这个程序是我从Windows上开发的,拿到jetson上直接可以跑,这就是QT的强大之处。
安装QT5
只需一句代码
sudo apt-get install qt5-default qtcreator -y
安装charts组件
charts组件的用途是把信号图形化显示,不需要的可以不用安装
sudo apt install libqt5charts5 libqt5charts5-dev
OK,安装完成在系统中直接搜索QT,开始你的jetson编程之旅吧
官方参考安装方式 https://www.jetsonhacks.com/2017/01/31/install-qt-creator-nvidia-jetson-tx1/
如下:
首先在终端输入命令
sudo apt-get install qt5-default qtcreator -y
然后等待qt5安装成功后需要设置编译器。打开Qt Creator,并转到:
工具 - >选项 - >构建和运行 - >编译器
点击“添加”按钮并选择“GCC”。在“编译器路径:”文本框中,将路径放置到gcc编译器。在标准安装中,路径是:/ usr / bin / gcc。这是第一个问题发挥的地方。将GCC添加到编译器列表中时,它不会正确设置处理器体系结构标志。如视频所示,通过修改GCC编译器对话框的ABI部分来解决此问题。将设置更改为:
custom - arm - linux - generic - elf - 64位
然后点击“应用”保存修改
第三步也是最后一步是添加一个支持GCC编译器的工具包。点击’ 套件 '标签。“ 桌面 ”套件似乎在设置编译器时遇到了问题。这意味着可以找到桌面套件配置文件并手动修改它,或者也可以一起创建一个新的套件。
安装examples
sudo apt-get install qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples -y
如果遇到qt无法找到libGL.so的问题,执行如下指令
$ cd /usr/lib/aarch64-linux-gnu
$ sudo rm libGL.so
$ sudo ln -s /usr/lib/aarch64-linux-gnu/tegra/libGL.so libGL.so
1.主要用到 QFileDialog 方法打开本地文件
2.界面
打开前:
打开后:
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class picture(QWidget):
def __init__(self):
super(picture, self).__init__()
self.resize(600, 400)
self.setWindowTitle("label显示图片")
self.label = QLabel(self)
self.label.setText(" 显示图片")
self.label.setFixedSize(300, 200)
self.label.move(160, 160)
self.label.setStyleSheet("QLabel{background:white;}"
"QLabel{color:rgb(300,300,300,120);font-size:10px;font-weight:bold;font-family:宋体;}"
)
btn = QPushButton(self)
btn.setText("打开图片")
btn.move(10, 30)
btn.clicked.connect(self.openimage)
def openimage(self):
imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
self.label.setPixmap(jpg)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
my = picture()
my.show()
sys.exit(app.exec_())
参考文献:
https://blog.csdn.net/we1583004we/article/details/80353798
https://blog.csdn.net/huiyuanliyan/article/details/92798313
https://blog.csdn.net/qq_32973061/article/details/81139689