에서 작업 표시 줄/도크 아이콘에서 사용자가 클릭이 나는 스카이프와 같은 기능을 할 OSX, 윈도우, 리눅스Qt는 응용 프로그램
에서 응용 프로그램을 개발하고 있어요 때 이벤트 또는 통지를 가져옵니다. 사용자가 창 닫기를 클릭하면 응용 프로그램이 종료되지 않지만 숨겨집니다. 사용자가 도크 또는 작업 표시 줄에서 appicon을 클릭하면 메인 윈도우가 다시 열립니다.
사용자가 앱 아이콘을 클릭하면 알림 또는 필터 이벤트를 알 수 있습니까?
에서 작업 표시 줄/도크 아이콘에서 사용자가 클릭이 나는 스카이프와 같은 기능을 할 OSX, 윈도우, 리눅스Qt는 응용 프로그램
에서 응용 프로그램을 개발하고 있어요 때 이벤트 또는 통지를 가져옵니다. 사용자가 창 닫기를 클릭하면 응용 프로그램이 종료되지 않지만 숨겨집니다. 사용자가 도크 또는 작업 표시 줄에서 appicon을 클릭하면 메인 윈도우가 다시 열립니다.
사용자가 앱 아이콘을 클릭하면 알림 또는 필터 이벤트를 알 수 있습니까?
먼저 "창 닫기"버튼을 눌렀을 때 응용 프로그램 창이 닫히지 않아야합니다. 당신이 QMainWindow
를 사용하는 것이, 가정 :
class MainWindow : public QMainWindow
{
// .. constructors, etc.
// ..
protected:
void closeEvent(QCloseEvent *)
{
// Do not close, but hide the window.
hide();
}
};
Qt는 작업 표시 줄 아이콘을 처리 할 수있는 전용 클래스가 - QSystemTrayIcon
합니다. 이 도움이 될해야
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mw;
QSystemTrayIcon tray; // needs an icon.
// Show the main window when user activates the tray icon.
QObject::connect(&tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
&mw, SLOT(show()));
tray.show();
return app.exec();
}
: 같은, 간단한 응용 프로그램이 보일 것이다
void setQuitOnLastWindowClosed(bool quit)
당신이 vahancho 감사합니다 나는 낮은 사용하여 찾을 ,() 내 응용 프로그램은 활동을 다시 할 수 있습니다 대신 근처의()에 대한 사용자가 작업 표시 줄에서 그것을 클릭 할 때. 그러나 QSystemTrayIcon은 내 응용 프로그램에 새로운 기능을 제공합니다. 감사합니다. –
'closeEvent'를 잘못 사용했습니다. 이 방법은 단순히 창을 닫을 것이라고 알리며 그 작업을 재정의 할 수 없습니다. 윈도우가 닫히지 않게하려면,'event' 메소드를 다시 구현해야합니다. 드롭하고자하는 이벤트의 경우,'true'를 리턴하고 기본 클래스의'event' 메소드를 호출하지 마십시오. –
@KubaOber, 사용법은 잘못이 아니며이를 무시할 수 있습니다. 심지어 문서에서는 "이 함수를 다시 구현하여 위젯이 창 닫기 요청에 응답하는 방식을 변경할 수 있습니다. 예를 들어 모든 이벤트에서 ignore()를 호출하여 창을 닫을 수 없습니다." – vahancho