0
시스템 트레이 아이콘과 아이콘을 마우스 오른쪽 버튼으로 클릭 할 때 나타나는 메뉴가있는 Qt 응용 프로그램이 있습니다. 어떤 이유로 메뉴 항목은 디버그 모드에서는 제대로 작동하지만 릴리즈 모드에서는 정상적으로 작동하지 않습니다. trayIconCloseAction_triggered()
는 전혀 호출되지 않습니다 - 시스템 트레이 아이콘은 디버그에서 작동하지만 Qt에서 해제 모드가 아닙니다.
QAction* closeAction = new QAction("Close", this);
QMenu* trayIconMenu = new QMenu(this);
trayIconMenu->addAction(closeAction);
QSystemTrayIcon* trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
QIcon trayIconIcon("Application.png");
trayIcon->setIcon(trayIconIcon);
trayIcon->show();
QObject::connect(closeAction, SIGNAL(triggered()), this, SLOT(trayIconCloseAction_triggered()));
void MainWindow::trayIconCloseAction_triggered() {
MessageBoxes::info("Close item clicked");
}
나는 아이콘을 마우스 오른쪽 버튼으로 클릭
, 메뉴하지만 "닫기"를 클릭하면 아무것도하지 않습니다 나타납니다. 이 작업은 릴리스 모드에서만 수행됩니다. 아무도 이유가 무엇인지 알 수 있습니까?Qt의 MSV-2010 정적 빌드를 사용하여 빌드하는 Windows 7 및 Qt Creator를 사용하고 있습니다.
편집 : 아이콘은 클릭 이벤트 ("활성화 된"신호)에도 반응하지 않습니다. 디버그 모드에서 다시 작동하지만 릴리즈는하지 않습니다. 이 같은 상황에서
프로젝트를 다시 빌드하십시오. 1. 빌드 디렉토리에서 "release"및 "debug"폴더를 지우십시오. 2. Qt 작성자의 "build"메뉴에서 "clean all"액션을 사용하십시오. 3. 릴리스 모드로 전환하십시오. 4. Ctrl + R 키를 눌러 필요한 기능을 확인하십시오. – Johnny
추가 : 3. "모두 다시 빌드"하기 전에 "실행 qmake"동작을 사용하십시오. – Johnny
예, 고맙습니다. 답변으로 의견을 자유롭게 추가하면 받아 들일 수있는 것으로 표시됩니다. –