python pyqt5学习笔记 2020-10-10(键盘输入事件+按下放开,鼠标点击区分左右中键,QWebEngineView显示网页)

    科技2024-07-20  65

    键盘输入事件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/

    Processed: 0.009, SQL: 8