獲取發件人在QLabel()上右鍵單擊的方式是什麼?我想知道在哪個Widget上點擊了鼠標右鍵。我有代碼來獲得這個職位,但我怎樣才能獲得發件人?PyQt - 跟蹤發件人的contextMenu
獲取發件人我可以取回accessibleName()
這是我目前的最低代碼:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import * #!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
# qbtn = QtGui.QPushButton('Quit', self)
label = QLabel("BG Sessions", self)
label.setContextMenuPolicy(Qt.CustomContextMenu)
label.setObjectName("title")
label.customContextMenuRequested.connect(self.clearCache)
label.move(50, 50)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
self.show()
def clearCache(self, pos):
print pos
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
什麼時候我只想通過obj但不是pos?當我這樣做時,我仍然得到對象的位置 – user1767754
'customContextMenuRequested'信號發出的位置,並且沒有什麼可以做的。所以,當你仍然必須將'pos'作爲'lambda'函數的參數時,如果你不想將它傳遞給'clearCache'(例如'my_object.customContextMenuRequested.connect(lambda pos,obj = my_object:self.clearCache(obj))' –