1
activated
슬롯이 실행 중이더라도 메뉴가 여전히 표시되지 않습니다. 트레이 아이콘과 시뮬레이션 된 클릭을 수동으로 클릭하고 동일한 실행 로직을 통해 추적했습니다.QSystemTrayIcon에서 사용자 시뮬레이션 시뮬레이션
은 현재 내가
여기class MyClass(QObject):
def __init__():
self._testSignal.connect(self._test_show)
self.myTrayIcon.activated.connect(lambda reason: self._update_menu_and_show(reason))
def show():
self._testSignal.emit()
@pyqtSlot()
def _test_show():
self._trayIcon.activated.emit(QtWidgets.QSystemTrayIcon.Trigger)
@QtCore.pyqtSlot()
def _update_menu_and_show(reason):
if reason in (QtWidgets.QSystemTrayIcon.Trigger):
mySystemTrayIcon._update_menu()
...
class MySystemTrayIcon(QSystemTrayIcon):
def _update_menu(self):
# logic to populate menu
self.setContextMenu(menu)
...
MyClass().show()
입니다. PyQt v4에 대한 빠른 테스트를 완료 했으므로 제대로 작동하는 것 같습니다 (예 : http://pastebin.com/). NkAQQyqt). 내가 한 것에 대해 다른 것을 보지 못하거나 PyQt5에 코드를 포팅해도 여전히 문제가 발생하면 PyQt5의 버그 일 수있다. –
@ three_pineapples 스크립트를 사용하면 설정에 문제가 있음을 알 수있었습니다. 이제 메뉴가 나타나지 않는 문제가 있습니다. 수정 사항을 참조하십시오. – mingxiao
@mingxiao 기술적으로 현재 다른 문제를보고 있으므로 더 이상 관련이없는 질문의 초기 부분을 삭제하십시오. SO는 토론 스레드가 아니므로 Q & A 포럼입니다. 질문은 독특하고 잘 정의되어 있어야하며, 그 질문과 대답은 상호 연관되어 있어야합니다. – Schollii