在全志H616核桃派开发板上进行PyQt5的代码编写和运行

核桃派本地

在上一节我们通过Qt Designer设计了ui窗口并转换成了Python代码,由于是Python编程,因此我们可以在核桃派开发板打开Python代码进行编程。

在核桃派上推荐使用Thonny来打开编写Python文件, 使用请参考:Thonny IDE

打开上一节生成的window.py文件,在代码后面添加下方程序入口代码, 添加后完整代码如下:

# -*- coding: utf-8 -*-# pyQT5 For WalnutPifrom PyQt5 import QtCore, QtGui, QtWidgetsclassUi_MainWindow(object):
defsetupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(480,320)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(190,160,75,23))self.pushButton.setObjectName("pushButton")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(190,90,91,16))self.label.setObjectName("label")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0,0,480,22))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)defretranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow","WalnutPi"))self.pushButton.setText(_translate("MainWindow","PushButton"))self.label.setText(_translate("MainWindow","Hello WalnutPi"))#################
#   主程序代码   #
#################
import sys#【可选代码】允许Thonny远程运行
import os
os.environ["DISPLAY"]=":0.0"#【可选代码】解决2K以上分辨率显示器显示缺失问题
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)#主程序入口,构建窗口并显示
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()#构建窗口对象
ui = Ui_MainWindow()#构建pyQT5设计的窗口对象
ui.setupUi(MainWindow)#初始化窗口
MainWindow.show()#显示窗口#【建议代码】允许终端通过ctrl+c中断窗口,方便调试
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
timer = QtCore.QTimer()
timer.start(100)# You may change this if you wish.
timer.timeout.connect(lambda:None)# Let the interpreter run each 100 mssys.exit(app.exec_())#程序关闭时退出进程

在核桃派桌面的Thonny点击运行,可以看到弹出了我们上一节设计的第一个窗口。(终端警告提示可以忽略)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

也可以在终端通过python指令运行修改好的window.py文件,效果一样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击关闭窗口可以关掉进程,如果是无关闭按钮的窗口可以通过终端按 Ctrl+C 组合键打断窗口进程。

提示

由于pyQT5夸代码平台兼容。所以在Windows本地的操作跟上面内容完全一样。

Thonny远程开发(基于Windows)

上面使用核桃派系统里面的Thonny IDE编程,同样我们可以使用Windows上的Thonny IDE远程到核桃派进行Python编程。核桃派系统出厂已经预装ssh服务,可以通过ssh远程控制。这个方法适合使用自己电脑远程开发。远程方法参考Python嵌入式编程里面:Thonny远程 内容,这里不再重复。

需要注意的是Thonny远程时务必加入下面代码才可正常运行:

# 允许Thonny远程运行
import os
os.environ["DISPLAY"]=":0.0"

远程打开核桃派的window.py文件(上面完整的代码),点击运行:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在核桃派开发板的桌面就弹出了该窗口。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过在Thonny主菜单运行–中断 或在下方终端按ctrl+c 即可退出窗口程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过3.5寸LCD显示

上面方法既可通过核桃派HDMI显示器显示,也可以通过3.5寸LCD显示。3.5寸显示屏使用说明:3.5寸触摸显示屏

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

无桌面系统运行pyQT5说明

无桌面系统需要开启进入 可使用鼠标的xterm终端 ,才能进入QT调试模式。

sudo systemctl enable lightdm.service

执行完需要重启生效:

sudoreboot

重启后自动登录pi,命令在左上角,可以看到鼠标,如下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这时候就可以本地或远程运行pyQT5的python文件代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下面指令可以退出此功能:

sudo systemctl disable lightdm.service

也是要重启生效,就返回普通终端模式了:

sudoreboot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/695464.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BGP学习二:BGP通告原则,BGP反射器,BGP路径属性细致讲解,新手小白无负担

目录 一.AS号 二.BGP路由生成 1.network 2.import-route引入 三.BGP通告原则 1.只发布最优且有效的路由 2.从EBGP获取的路由,会发布给所有对等体 3.水平分割原则 4.IBGP学习BGP默认不发送给EBGP,但如果也从IGP学习到了这条路由,就发…

乡村振兴与乡村旅游深度融合:依托乡村自然和文化资源,发展乡村旅游产业,促进农民增收致富,打造特色美丽乡村

目录 一、引言 二、乡村振兴与乡村旅游的内在联系 三、依托乡村自然和文化资源发展乡村旅游产业 (一)挖掘乡村自然资源优势,打造特色旅游品牌 (二)挖掘乡村文化资源内涵,丰富旅游活动内容 四、促进农…

PG的事务ID回卷逻辑

PG到目前为止使用的事务ID仍然是32位的,在内存计算时虽然已经使用64位事务ID,但是存储在页中tuple仍然使用32位事务ID,这就是说,事务ID回卷仍然是必须处理的问题。 所谓PG事务ID回卷,简单地说,就是在数据库…

网页版五子棋的自动化测试

目录 前言 一、主要技术 二、测试环境的准备部署 三、测试用例 四、执行测试 4.1、公共类设计 创建浏览器驱动对象 测试套件 释放驱动类 4.2、功能测试 登录页面 注册页面 游戏大厅页面 游戏房间页面 测试套件结果 4.3、界面测试 登录页面 注册页面 游戏大…

python如何单步调试

Python怎么单步调试?下面给大家介绍一下单步调试: 方法一:执行 python -m pdb myscript.py (Pdb) 会自己主动停在第一行。等待调试,这时你能够看看帮助。 方法二:在所调试程序的开头中:import pdb 并在你…

Vue入门到关门之Vue3学习

一、常用API 注意:本文项目均使用脚手架为 Vite 1、setup函数 (1)介绍 如果在项目中使用配置项API,那么写起来就和vue2的写法是一样的;但是如果在项目中写的是组合式API,那么组件中所用到的&#xff1a…

电脑提示找不到ffmpeg.dll无法继续执行代码怎么办?

电脑提示找不到找不到ffmpeg.dll无法继续执行代码怎么办,有什么好的解决办法,出现这样的弹出就会导致软件无法打开或者是异常关闭,找不到dll文件,是一个非常重要的电脑使用问题,会给使用者带来许多的麻烦。那么找不到d…

PyWebIO,用 Python 写网站

在Python的世界里,PyWebIO是一个简单而强大的库,它能让你的Python脚本快速拥有一个交互式的网页界面。想象一下,你不需要懂得前端开发,就能创建出用户友好的网页应用,这是多么酷的一件事!今天,我…

uni-app条件编译和网页打包

在项目打包时,存在打包微信小程序、h5网页端或者其他平台小程序的情况,但是有些api是某些小程序中特有的,例如wx.requestPayment(),微信支付、授权等功能。 这时,若不做条件编译,打包成非微信小程序的项目…

新闻资讯微信小程序开发后端+php【附源码,文档说明】

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

1694jsp宿舍管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 宿舍管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库…

气膜建筑送风装置特点是什么样的—轻空间

气膜建筑作为一种新型建筑结构,其送风装置在保证建筑内部空气压力和稳定性方面发挥着至关重要的作用。以下是对气膜建筑送风装置特点的详细介绍: 1. 提供稳定内压: 气膜建筑的送风装置利用送风形成内部压力,赋予建筑物必要的刚度和…