2009-08-31 18 views
26

Sto sviluppando un'applicazione molto semplice sul mio Mac usando QtCreator.Ingresso console con Qt Creator

Si tratta di un'applicazione console e voglio all'utente di inserire il proprio nome, e poi visualizzare il suo nome. Ecco il codice:

#include <iostream> 

int main(int ArgC, char* ArgV[]) 
{ 
    char Name[1000]; 

    std::cout << "Type your name : "; 
    std::cin >> Name; 

    std::cout << "Hello " << Name << "\n"; 
    return 0; 
} 

Quando si esegue questa applicazione con QtCreator, la stringa "Digitare il nome di:" viene visualizzato nella scheda 'Output Application'. Ma se digito del testo e preme il tasto Invio, non succede nulla.

Cosa c'è che non va?

risposta

23

Ho trovato una soluzione. Con Qt Creator 1.3.0 (su Mac OS X), ecco quello che dovevo fare:

  • Progetto-> Impostazioni corsa, selezionare "Esegui nel Terminal" (grazie Ropez)
  • Qt creatore,> Preferenze: Environnement: Generale: Terminale: ho dovuto inserire l'intero percorso in XTerm. Per la mia configurazione, ho dovuto inserire /usr/x11/bin/xterm -e.

Ora, tutto funziona bene!

+1

Nella mia versione di QTcreator (3.6.0), la scheda "Progetto" è una scheda verticale denominata "Progetti" (con "s"). Puoi trovarlo nella parte sinistra della finestra principale di ide. Come per le Preferenze e il percorso del terminale, si trova in "Strumenti> Opzioni> Ambiente (scheda verticale)> Sistema (scheda orizzontale)" –

7

Vai a Progetto -> Esegui impostazioni e assicurati che "Esegui in terminale" sia selezionato.

BTW:

std::cin >> Name; 

non è probabilmente quello che volete. Legge solo un singolo token (in genere solo il primo nome). Dovresti dare un'occhiata a getline o allo string version.

+0

Grazie per la risposta. Ho controllato la casella di controllo "Esegui in terminale", ma ora ho questo problema durante l'esecuzione della mia app: Impossibile avviare l'emulatore di terminale 'xterm'. Qualche idea? –

+0

OK, non ho mai usato Qt Creator su Mac, solo Linux. 'xterm' è il nome dell'emulatore di terminale predefinito su Linux. Probabilmente hai bisogno di cambiarlo in "terminale" o qualcosa del genere. Ancora una volta, non ho familiarità con Mac. Lo trovi sotto Strumenti -> Opzioni -> Ambiente. – Ropez

+0

FYI, ho ricevuto lo stesso errore "Impossibile avviare l'emulatore di terminale 'xterm'". Sulla mia macchina Fedora 15 ho dovuto fare un "sudo yum install xterm". Ora quando esegui il tuo codice qtcreator può aprire un xterm e avere successo. –

2

La soluzione Jeromes è quella giusta. Anche se posso darti un'alternativa diversa. Nel caso in cui tu non voglia usare X11 (per qualche ragione comunque) nella stessa posizione (QtCreator-> Preferences-> Environment: General: Terminal) puoi dare il tuo percorso all'applicazione Terminal come questa: /Applications/Utilities /Terminal.app/Contents/MacOS/Terminal

Enjoy!

+1

Su Qt Creator 2.6.x questa soluzione crea non meno di 3 finestre di terminale e non pop-up sopra altre finestre quindi è necessario fare clic sull'icona del Dock per vedere il contenuto. –

2

Soluzione per Windows.

Nel file .pro aggiuntivo:

QT -= core gui 
TEMPLATE = app 
CONFIG += console 

Vai al progetto -> Impostazioni corsa, e assicurarsi che "Esegui nel terminale" sia selezionata.

1

Per Mac basato su Qt 2.4.0, fare clic sulla scheda verticale di progetto, che si trova al di sotto del "Debug" sulla stessa linea verticale Benvenuto, Modifica, Design. In Target-> Run, assicurati che "Run in terminal" sia selezionato!

1

ho avuto la "Impossibile avviare l'emulatore 'xterm' terminale" problema su Mac e risolto andando a impostazioni, Ambiente e cliccando sul pulsante "reset" pulsante accanto alla Terminal campo di testo.

Per qualche ragione di default appena detto "xterm -e", ma dopo il reset è diventato un percorso assoluto di "/usr/X11/bin/xterm -e".

L'app della mia console funzionava correttamente.