zoukankan      html  css  js  c++  java
  • 大爽pyqt5笔记&教程 二 使用类Class组织代码 处理键盘点击事件

    作者自我介绍:大爽歌, b站小UP主
    python1对1辅导老师
    时常直播编程,直播时免费回答简单问题。

    4 使用类Class

    当写的代码一多起来,
    使用类Class的继承重写等等,来编写组织代码会更好。
    这个更进一步,就是面向对象编程的思想。

    比如使用类Class的写法,
    重新写下基础部分第三节的总代码

    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import QPixmap
    
    import sys
    
    class MyWindow(QWidget):
        def __init__(self):
            super(MyWindow, self).__init__()
            self.resize(300, 200)
            self.init_gui()
    
            self.button.clicked.connect(self.click_button)
    
            self.show()
    
        def init_gui(self):
            self.label = QLabel("Label Text", self)
            self.label.move(40, 20)
    
            self.button = QPushButton('Button', self)
            self.button.move(150, 20)
    
            self.img_label = QLabel(self)
            pixmap = QPixmap('my_logo.png')
            self.img_label.setPixmap(pixmap)
            self.img_label.move(20, 50)
    
        def click_button(self):
            self.label.setText("Clicked")
    
    app = QApplication(sys.argv)
    
    mywindow = MyWindow()
    
    sys.exit(app.exec_())
    

    5 键盘点击事件

    要写键盘点击事件
    需要继承窗口类,并重写自己的keyPressEvent方法。

    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import QPixmap
    from PyQt5.QtCore import Qt
    
    import sys
    
    class MyWindow(QWidget):
        def __init__(self):
            super(MyWindow, self).__init__()
            self.resize(300, 200)
    
            self.add_widgets()
            self.show()
    
        def add_widgets(self):
            self.label = QLabel("Label Text", self)
            self.label.move(40, 20)
    
            self.button = QPushButton('Button', self)
            self.button.move(150, 20)
    
            self.img_label = QLabel(self)
            pixmap = QPixmap('my_logo.png')
            self.img_label.setPixmap(pixmap)
            self.img_label.move(20, 50)
    
        def keyPressEvent(self, event):
            if event.key() == Qt.Key_K:
                self.label.setText("Press K")
    
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    
    sys.exit(app.exec_())
    

    此时按键盘上的K键, label标签会展示Press K

  • 相关阅读:
    SQL临时表加分页操作
    JS 操作Url参数
    C#字符串根据特定字符串分割
    windows下python读写excel
    怎样才是更好的自己 多好才算更好的未来
    IndentationError: unindent does not match any outer indentation level
    LinAlgError: Array must not contain infs or NaNs
    c#操作xml
    sql索引碎片产生的原理 解决碎片的办法(sql碎片整理)(转)
    利用sys.dm_db_index_physical_stats查看索引碎片等数据(转)
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15564191.html
Copyright © 2011-2022 走看看