pyqt元件點選事件(其他事件也一樣)傳遞引數

2021-10-03 10:55:28 字數 958 閱讀 7038

是這樣,做專案的時候需要對多個元件共用乙個方法,這個時候就有乙個問題,如何去辨別每次觸發這個方法的是哪個元件。

常規的方式是通過self.sender()方法來獲取觸發源是誰。然後通過觸發源的text屬性內容的不同來區分。比如:

def setcolor(self, pressed):

source = self.sender()

if pressed:

val = 255

else: val = 0

if source.text() == "red":

self.col.setred(val)

elif source.text() == "green":

self.col.setgreen(val)

else:

self.col.setblue(val)

self.square.setstylesheet("qframe " %

self.col.name())

但是筆者認為這種方式的對整個系統都是不穩定的成分,為什麼呢,因為text屬性本身就是乙個可變的引數,而且變化的概率還很大,所以就想能不能找到乙個類似html裡頭dom元素設定id這種的方式。翻看了一圈,還沒發現。最後曲線救國,就是觸發方法的時候傳遞乙個標識引數,通過引數的不同來判斷是誰觸發的。如下:

1、使用lambda修飾符(因為傳參了,需要加上括號,在python裡頭就是表示立刻執行這個方法,所以必須加上lambda:來避免這種情況),連線訊號

self.pushbutton.clicked.connect(lambda:self.buttonclicked(1,1))
2、定義方法

def buttonclicked(self,p1,p2):

pass

vue元件繫結點選事件

今天敲 的時候 發現不能給vue封裝好的元件繫結點選事件 情況是這樣的 因為 有乙個列表 在很多地方都要用到 所以就封裝成元件了 然後 裡邊有乙個邏輯就是點選進入詳情頁面 我在元件上繫結了點選事件 發現 點選事件並沒有生效 然後發現111和id都沒有輸出 查了查資料 發現 native 修飾符可以解...

UIImageview 點選事件

uiimageview imageview uiimageview alloc initwithframe cgrectmake 100,100,200,200 imageview.image uiimage imagenamed filter laozhaopian a.png imageview...

Android view點選事件

import android.os.bundle import android.view.keyevent import android.view.motionevent import android.view.view import android.view.view.onclicklistene...