2013-07-05 3 views
0

Как я могу справиться с ⇧ сдвиг (или ⌘ команды и ⌥ варианта) + click на QSystemTrayIcon?Нажмите + сдвиг на QSystemTrayIcon

То, что я уже пробовал:

app = MyApp(sys.argv) 

class MyApp(QApplication): 
    self.trayIcon = QSystemTrayIcon(self) 
    self.trayIcon.activated.connect(self.trayIconActivated) 
... 
    def trayIconActivated(self): 
     print "ACTIVATED", app.keyboardModifiers() 
... 

Всегда печатает (независимо от того, нажата ли кнопки):

ACTIVATED <KeyboardModifiers object at 0x1002ad498> 

def trayIconActivated(self): 
    print app.keyboardModifiers() & QtCore.Qt.ShiftModifier 
    print app.keyboardModifiers() & QtCore.Qt.ShiftModifier == QtCore.Qt.ShiftModifier 

Всегда печатает:

<KeyboardModifiers object at 0x1002ad4b0> 
False 

Версии:

PySide 1.1.2
Qt 4.8.4

ответ

0

Вы должны проверить флаги для определенного модификатора с использованием, например, app.keyboardModifiers() & Qt.ShiftModifier.

+0

'app.keyboardModifiers() & QtCore.Qt.ShiftModifier, app.keyboardModifiers() & QtCore.Qt.ShiftModifier == QtCore.Qt.ShiftModifier' всегда возвращает' <Объект KeyboardModifiers в 0x1002ad4b0> False' – fedosov