Bu sizin düğme işleyicisinde QApplication.keyboardModifiers kontrol edin ve uygun şekilde farklı bir eylem seçmek yapmanız gereken tüm benziyor:
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.button = QtGui.QPushButton('Test', self)
self.button.clicked.connect(self.handleButton)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.button)
def handleButton(self):
modifiers = QtGui.QApplication.keyboardModifiers()
if modifiers == QtCore.Qt.ShiftModifier:
print('Shift+Click')
elif modifiers == QtCore.Qt.ControlModifier:
print('Control+Click')
elif modifiers == (QtCore.Qt.ControlModifier |
QtCore.Qt.ShiftModifier):
print('Control+Shift+Click')
else:
print('Click')
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
(NB: denetlemek amacıyla various modifiers birlikte OR operatörüyle edilebilir çoklu tuş kombinasyonları için).
Bkz http://stackoverflow.com/questions/3100090/howto-detect-the-modifier-key-on-mouse-click-:
bu çözümün asıl tartışma için buraya git in-qt – Tanriol
Komutları çalıştırmak için 'MouseClick + Modifier' kullanmak istediğiniz anlamına mı geliyor? Ve "dinamik dizi özellikleri" ne anlama geliyor? – ekhumoro
Merhaba, Biri vardiyada bir tuşa bastığında ctrl tıklama veya sadece normal tıklamadan farklı bir eylem gerçekleştirdiğinde demek istedim. – user1087058