pyqt5介面與邏輯分離 訊號槽的裝飾器實現方式

2021-09-08 18:12:23 字數 2311 閱讀 2896

本文展示了 pyqt5 訊號槽的裝飾器實現方式(借鑑自 eirc6)

乙個簡單的例子。實現功能:兩個數相加,顯示結果。如圖

必須self.inputspinbox2 =qtwidgets.qspinbox(form)

self.inputspinbox2.setgeometry(qtcore.qrect(70, 26, 46, 25))

self.inputspinbox2.setobjectname(

"inputspinbox2

") #

必須self.outputwidget =qtwidgets.qlabel(form)

self.outputwidget.setgeometry(qtcore.qrect(140, 24, 36, 27))

self.outputwidget.setobjectname(

"outputwidget

") #

必須qtcore.qmetaobject.connectslotsbyname(form)

#必須說明:1. 介面部件需要setobjectname ;  2. 最後必須 qtcore.qmetaobject.connectslotsbyname(form)

#calc.py

from pyqt5.qtcore import

pyqtslot

from pyqt5.qtwidgets import

from ui_calc import

ui_calc

#方式一

class

mycalc(qwidget):

def__init__(self, parent=none):

super().

__init__

(parent)

self.ui =ui_calc()

self.ui.setupui(self)

@pyqtslot(int)

defon_inputspinbox1_valuechanged(self, value):

self.ui.outputwidget.settext(str(value +self.ui.inputspinbox2.value()))

@pyqtslot(int)

defon_inputspinbox2_valuechanged(self, value):

self.ui.outputwidget.settext(str(value +self.ui.inputspinbox1.value()))

#方式二

class

mycalc2(qwidget, ui_calc):

def__init__(self, parent=none):

super().

__init__

(parent)

self.setupui(self)

@pyqtslot(int)

defon_inputspinbox1_valuechanged(self, value):

self.outputwidget.settext(str(value +self.inputspinbox2.value()))

@pyqtslot(int)

defon_inputspinbox2_valuechanged(self, value):

self.outputwidget.settext(str(value +self.inputspinbox1.value()))

if__name__ == '

__main__':

import

sys win =mycalc()

#win = mycalc2()

win.show()

pyqt5介面與邏輯分離 訊號槽的裝飾器實現方式

本文展示了 pyqt5 訊號槽的裝飾器實現方式 借鑑自 eirc6 乙個簡單的例子。實現功能 兩個數相加,顯示結果。如圖 必須self.inputspinbox2 qtwidgets.qspinbox form self.inputspinbox2.setgeometry qtcore.qrect ...

pyqt5 訊號與槽

描述self.obj.destroyed.connect destroy cao 觸發後會執行槽函式,並給槽函式返回釋放物件 self.obj.blocksignals true 臨時打斷訊號 self.obj.objectnamechanged.disconnect 斷開訊號與槽的連線 self....

pyqt5 訊號與槽

訊號與槽 是pyqt的精髓,要多總結學習一下 定義通俗解釋 事件源 狀態發生改變的物件,它產生事件 source obj 按鈕 物件 事件目標 是想要被通知的物件 target obj 被點選 狀態發生改變 事件物件 封裝了事件源中的狀態變化 evnet obj 執行 呼叫函式 def use se...