2012-05-16 2 views
0

QSystemTrayIcon 클래스를 사용하여 TrayIconMenu를 표시하고 TrayIconMenu를 클릭하는 동안 팝업 메뉴가 표시됩니다.응용 프로그램이 사용중인 경우 QSystemTrayIcon 팝업 메뉴가 표시되지 않습니다.

다른 작업을 처리하는 동안 응용 프로그램이 사용중인 경우 TrayIcon을 클릭하면 팝업 메뉴가 표시되지 않지만 잠시 동안 메뉴 테두리가 표시됩니다. 동일한 코드가 Mac에서 작동합니다.

QMenu *myMenu(); 
    QSystemTrayIcon myTrayIcon; 
    myTrayIcon.mytMenu()->show(); 

답변

1

당신이 이것을 극복하는 방법은 여러 가지가있다 :

다음과 같은 방법

나는 메뉴를 표시하려합니다. 이 기사는 유용 할 수 있습니다 : Keeping the GUI Responsive

+0

감사합니다 dschulz, 나는 이것을 이해하려고합니다. – JChan

+0

@dschulz 링크가 사라졌습니다! 그 내용이 무엇인지 설명해 주시겠습니까? –

+0

@ ThePeacefulCoder가 끊어진 링크를 수정했습니다. 그래도 실패하면 페이지를 새로 고침하십시오. 그러면 정상적으로 작동합니다. – dschulz

0

아마도 문제는 광범위한 계산 블록이나 크고 느린 루프 때문일 수 있습니다. 이 병목 현상입니다 알고 있다면, 당신은 단순히 계산 루프 내부의 어떤 시점에서

QApplication::processEvents(); 

를 삽입하는 대기 이벤트를 처리 할 수있는 이벤트 루프를하도록 할 수 있습니다.

또한 작고 빠른 작업으로 크고 값 비싼 작업을 분할하려고하면 이벤트 루프가 중간에 이벤트를 처리하도록 할 수 있습니다.

+0

감사합니다 펠릭스, 나는 temproary 수정으로 implemet processevents하려고합니다. – JChan

+0

때로는 이것이 유일한 일회용 솔루션이 아닌 일시적인 솔루션입니다! –

관련 문제