2016-12-04 1 views
0

ich habe Problem mit einiger Verbindung:Qt connect funktioniert nicht, wenn das Fenster im Vollbild-Modus ist

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

Und die Vollbild-Funktion ist:

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); 

} 

Ich kann nicht wieder normal Modus mit Tastenkürzel (F-Taste), aber ich kann es mit Doppelklick tun, die die gleiche Funktion verwendet. Wo ist mein Fehler?

Antwort

-1

Wurde "fullscreenMode" initialisiert, als das MainWindow erstellt wurde?

Hier kommt 2 Probleme:

  1. undefined Vollbildmodus Ursache unerwartetes Ergebnis.

  2. QAction ausgelöst übergeben einen booleschen Parameter, wenn Ihre Funktion - "Vollbild" auch einen Parameter hat, wird der "Vollbild" diesen Parameter abfangen, der von ausgelöst() übergeben wird. Wenn die Aktion überprüfbar ist, ist der boolesche Parameter außerdem true, wenn die Aktion aktiviert ist, oder false, wenn die Aktion deaktiviert ist.

Hoffe, dass diese helfen können.

+0

Vielen Dank für Ihre Aufmerksamkeit. Nun, FullscreenMode wurde im MainWindow-Konstruktor initialisiert, und meine "Vollbild" -Funktion hat keinen Parameter. – annamataris

1

Die Antwort lautet:

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