2017-08-10 22 views
0

我有一個小部件可以瀏覽一大堆圖像。我在QLabel中顯示圖像,並且有許多功能,每個功能都有自己的快捷方式,可以編輯圖像或進行導航。QLabel全屏:利用現有的快捷方式(無新代碼)

現在我想創造一個選項,以顯示在全屏模式下的圖像(QLabel),但我仍想使用定義的快捷鍵,並調用函數,他們被分配到(這樣我仍然可以瀏覽圖像而不必離開全屏模式)。

目前我很接近,但我無法使用任何快捷方式(所以我甚至無法退出全屏模式)。 我顯示了使用QLabel全屏:

ui->myImage->setWindowFlags(ui-> myImage->windowFlags() | Qt::Window); 
ui->myImage->showFullScreen(); 
ui->myImage->showMaximized(); 

(來自:Qt - How to show a QLabel in fullscreen on my laptop?

我希望避免以不同的方式再一次asigning這些快捷鍵等等。更具體地說,我真的想盡量減少代碼來做到這一點,以保持我的代碼的可讀性,靈活性和可維護性。即沒有單獨的小部件或類。

編輯

到目前爲止已經試過:

  • 添加一個動作,將其連接到相關的功能,例如

    connect(ui->actionMinimize,SIGNAL(triggered(bool)),this,SLOT(on_minimize_clicked())); 
    
  • 添加以下屬性:

    ui-> myImage->setAttribute(Qt::WA_ShowWithoutActivating); 
    
+0

你試過設置['Qt的:: WA_ShowWithoutActivating'(http://doc.qt.io/qt-5/qt。 HTML#WidgetAttribute-enum)屬性到你的標籤? – thuga

+0

@thuga感謝您的建議,但這並沒有幫助。我試過這個:'ui-> myImage-> setAttribute(Qt :: WA_ShowWithoutActivating);'。你還有其他建議嗎? –

+0

如何設置快捷方式的上下文到['Qt :: ApplicationShortcut'](http://doc.qt.io/qt-4.8/qt.html#ShortcutContext-enum)? – thuga

回答

0

以供將來參考,@ thuga的答案的詳細信息。我已經把我的MainWindow的構造函數如下:

QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_Escape), this); 

shortcut->setContext(Qt::ApplicationShortcut); 

connect(shortcut , SIGNAL(activated()), this, SLOT(stopFullScreen()));