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

25 篇文章 2 订阅

键盘输入事件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/
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值