2010-04-28 6 views
43

Sono completamente nuovo a Qt.Come connettere il clic del menu con l'azione in Qt Creator?

Ho iniziato con una nuova applicazione Qt4 GUI.

Utilizzando il progettista, ho creato un menu in questo modo:

File 
- Exit 

Come faccio ad avere un'azione associata con la voce di menu?

Ho trovato qualcosa chiamato "Editor di segnali e slot" ma non ho idea di come utilizzarlo.

risposta

47

Fare clic sul segno più verde dopo aver selezionato il segnale Editor di slot. Ti darà 4 campi da riempire. Per il mittente selezioni ciò che sta creando il segnale. Ad esempio, ActionExit potrebbe essere il nome che hai creato per la voce di menu di uscita. Il segnale verrà probabilmente cliccato(). Il ricevitore è solitamente la classe che hai creato che ha tutti i tuoi metodi. Lo slot è il metodo che hai creato in quella classe che vuoi eseguire. Ad esempio:

actionExit clicked() <nameOfClass> exitGame() 

Spero che questo aiuti.

+0

Ok, fantastico. Un'ultima domanda veloce ... qual è la firma del metodo per la funzione che viene chiamata quando si fa clic sulla voce di menu? È come 'void OnClick()', o ci sono degli argomenti? –

+3

In realtà si dovrebbe selezionare triggerato() perché si tratta di un'azione. Ora per il metodo che viene chiamato, non ha bisogno di argomenti, quindi puoi chiamarlo void exitGame() se vuoi. – Isawpalmetto

+1

A proposito, ho dimenticato di menzionare che trigger() è ciò che dovrebbe andare nel campo del segnale. Volevo solo essere chiaro. – Isawpalmetto

39

Sono riuscito a farlo in un modo che sembra molto più facile. Nella finestra di Qt Creator Action Editor, vedo una voce per la voce di menu che ho cliccato. Fare clic su tale voce e selezionare "Vai allo slot ...", quindi selezionare triggerato() dal popup e fare clic su OK. Qt Creator mi salta al codice appena aggiunto .... Ho inserito una dichiarazione qDebug e funziona!

+2

La differenza tra questa e la risposta accettata è che questa risposta crea un'azione specifica per la voce di menu e la risposta accettata si collega a qualsiasi slot pre specificato , entrambi gli aspetti sono utili. – radman

+0

Ho frainteso prima, ho confuso quello che hai detto con il browser degli oggetti, usare l'Action Editor è ovviamente la strada da percorrere! – Nisse

2

Passare all'Editor di slot e quindi fare clic sulla scheda Action Editor sul lato sinistro del bot. Sono elencate tutte le azioni del menu.

Il tasto destro del mouse -> vai a Slot offre una funzione di slot.