2016-12-04 89 views
0

我有問題,一些連接:Qt的連接不工作時窗口處於全屏模式

QAction* fs = new QAction(this); 
fs->setShortcut(Qt::Key_F); 
connect(fs, &QAction::triggered, this, &MainWindow::fullscreen); 
menuBar()->addAction(fs); 

而且全屏功能是:

if(!fullscreenMode) 
{ 
    mouseMoved=time(0); 
    this->menuBar()->hide(); 
    this->showFullScreen(); 
    fullscreenMode=true; 
} 
else 
{ 
    this->menuBar()->show(); 
    timeBar->show(); 
    controlBar->show(); 
    this->showNormal(); 
    fullscreenMode=false; 
    timeBar->visibilityChanged(true); 
    controlBar->visibilityChanged(true); 

} 

我不能恢復正常模式使用快捷鍵(F按鈕),但我可以使用雙擊它使用相同的功能。我的錯誤在哪裏?

回答

-1

已經是創建主窗口時「fullscreenMode」被初始化?

又來了2個問題:

  1. 不確定fullscreenMode引起意想不到的結果。

  2. QAction觸發傳遞一個布爾參數,如果你的函數 - 「全屏」也有一個參數,「全屏」將捕獲這個參數,從trigger()傳遞。另外,如果動作是可檢查的,則布爾參數在檢查動作時爲真,如果未檢查動作則爲假。

希望這些可以幫助。

+0

感謝您的關注。那麼,fullscreenMode已經在MainWindow構造函數中初始化了,而我的「全屏」函數沒有參數。 – annamataris

1

答案是:

QShortcut* fullscreenShortcut = new QShortcut(QKeySequence(Qt::Key_F),this,SLOT(fullscreen()));