键盘输入事件keyPressEvent
写一个键盘输入事件:
#键盘输入事件
def keyPressEvent(self, event):
self.Press_key = event.key()
print(self.Press_key)
运行程序,键盘输入一些按键,执行如下:
试了几下,几个常用键为:
ctrl:16777249
shift: 16777248
enter: 16777220
alt: 16777251
a到z: 65到90
0到9: 48到57
那么使用时,比如:
#表示输入ctrl键时就会输出yes
def keyPressEvent(self, event):
self.Press_key = event.key()
if self.Press_key == 16777249:
print("yes")
点击ctrl时就会打印yes
键盘按下和放开事件:
例如:
def keyPressEvent(self, event):
self.Press_key = event.key()
print("Press")
def keyReleaseEvent(self, event):
self.Release_key = event.key()
print("Release")
那么组合一下就可以实现比如按ctrl+鼠标滚轮实现控制。
鼠标点击事件区分左中右键
#鼠标点击事件
def mousePressEvent(self,event):
if event.buttons() == QtCore.Qt.RightButton:
print("right button")
if event.buttons() == QtCore.Qt.LeftButton:
print("left button")
if event.buttons() ==QtCore.Qt.MidButton:
print("mid button")
执行以后:
pyqt5使用QWebEngineView显示网页
#添加模块
from PyQt5 import QtWebEngineWidgets
#打开网页按钮功能
def open_web(self):
#初始化一个QWebEngineView对象,model_show_box为它的父控件
self.browser = QtWebEngineWidgets.QWebEngineView(self.ui.model_show_box)
self.browser.setGeometry(0,0,480,460)
self.browser.load(QtCore.QUrl(r"https://www.baidu.com/"))
self.browser.show()
报错QtWebEngineWidgets不存在时:
pip3 install PyQtWebEngine -i https://pypi.tuna.tsinghua.edu.cn/simple/
运行结果
参考自:https://blog.csdn.net/jia666666/article/details/81675009
后来发现并不需要按钮来触发,直接在布局中就能实现,如在布局中直接部署一个QWebEngineView,程序启动初始化时就执行:
self.browser = QtWebEngineWidgets.QWebEngineView(self.model_show_box)
self.browser.setGeometry(0,0,480,460)
self.browser.load(QtCore.QUrl(r"https://lutzroeder.github.io/netron/"))
#self.browser.page().runJavaScript(self.js)
self.browser.show()
那么原来的窗口就用来显示netron用于查看模型的结构:
本来想添加一个打开文件按钮,然后用runJavaScript来将netron的打开模型按钮自动化,但是后来发现一来github打开是有延迟的,延迟提交可能会影响体验,二来向开发js的小伙伴询问了一下,把模型提交给这个网页并不是像本地一样提交个路径就可以了,所以还是放弃了。
美化ui
一直没有什么艺术细胞,所以设计的ui也比较难看,今天在阿里图标库上找了一些素材,把之前的界面稍微改善了一下。
阿里矢量图标库地址:https://www.iconfont.cn/