QT5知识:装饰器@pyqtSlot和槽和信号
生活随笔
收集整理的這篇文章主要介紹了
QT5知识:装饰器@pyqtSlot和槽和信号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、定義槽的格式
| 1 2 3 | @PyQt5.QtCore.pyqtSlot(參數) def on_發送者對象名稱_發射信號名稱(self,參數): ?pass |
2、注意點,使用裝飾器必須定義兩個東西
QMetaObject.connectSlotsByName(self)
給需要綁定事件的定義一個id(self.btn.setObjectName('名稱'))
3、按鈕的普通事件
如果普通事件,則程序如下:
class Window(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)self.setWindowTitle('裝飾器信號與槽')self.resize(500, 500)self.move(400, 200)self.btn = QPushButton('按鈕', self)self.init_ui()def init_ui(self):self.btn.clicked.connect(self.btn_hand)@staticmethoddef btn_hand():print('使用connect點擊了按鈕')4、使用裝飾器后的事件
from PyQt5.QtWidgets import QMainWindow, QPushButton, QWidget, QMessageBox, QApplication, QHBoxLayout from PyQt5.QtCore import QMetaObject,pyqtSlot import sysclass Window(QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)self.setWindowTitle('裝飾器信號與槽')self.resize(500, 500)self.move(400, 200)self.btn = QPushButton('按鈕', self)self.init_ui()# 要在加載組件后使用QMetaObject.connectSlotsByName(self)def init_ui(self):# 這個地方定義的名字直接在下面使用self.btn.setObjectName('btn')@pyqtSlot()def on_btn_clicked(self):print('使用裝飾器點擊了按鈕') if __name__ == "__main__":app = QApplication(sys.argv)form = Window()form.show()sys.exit(app.exec_())python GUI庫圖形界面開發之PyQt5信號與槽基礎使用方法與實例_python_腳本之家 (jb51.net)
總結
以上是生活随笔為你收集整理的QT5知识:装饰器@pyqtSlot和槽和信号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python知识:@classmetho
- 下一篇: QT界面操作1:如何跟踪鼠标位置?