2009-08-31 7 views
26

Ich entwickle eine sehr einfache App auf meinem Mac mit QtCreator.Konsole Eingabe mit Qt Creator

Es ist eine Konsolenanwendung und ich möchte den Benutzer seinen Namen eingeben, und dann zeige ich seinen Namen. Hier ist der Code:

#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; 
} 

Wenn diese App mit QtCreator ausgeführt wird, die Zeichenfolge "Geben Sie Ihren Namen ein:" in dem 'Application Output' Registerkarte angezeigt. Aber wenn ich etwas Text eintippe und die Eingabetaste drücke, passiert nichts.

Was ist los?

Antwort

23

Ich fand eine Lösung. Mit Qt Creator 1.3.0 (Mac OS X), hier ist das, was ich zu tun hatte:

  • Project-> Ausführen Einstellungen überprüfen "Run in Terminal" (Danke Ropez)
  • Qt Schöpfer-> Einstellungen: Environnement: Allgemein: Terminal: Ich musste den gesamten Pfad zu XTerm setzen. Für meine Konfiguration musste ich /usr/x11/bin/xterm -e setzen.

Jetzt funktioniert alles gut!

+1

In meiner Version von QTcreator (3.6.0) ist die Registerkarte "Projekt" eine vertikale Registerkarte namens "Projekte" (mit "s"). Sie finden es auf der linken Seite des Hauptfensters. Wie bei den Voreinstellungen und dem Terminalpfad befindet er sich in "Werkzeuge> Optionen> Umgebung (vertikale Registerkarte)> System (Registerkarte Horizontal)" –

7

Gehen Sie zu Projekt -> Einstellungen ausführen und vergewissern Sie sich, dass "Run in Terminal" aktiviert ist.

BTW:

std::cin >> Name; 

ist wahrscheinlich nicht das, was Sie wollen. Es wird nur ein einzelnes Token gelesen (normalerweise nur der Vorname). Sie sollten sich die getline oder die string version ansehen.

+0

Danke für Ihre Antwort. Ich habe das Kontrollkästchen "Im Terminal ausführen" aktiviert, aber jetzt habe ich dieses Problem beim Ausführen meiner App: Der Terminal-Emulator 'xterm' kann nicht gestartet werden. Irgendeine Idee? –

+0

OK, ich habe noch nie Qt Creator auf Mac benutzt, nur Linux. 'xterm' ist der Name des Standard-Terminalemulators unter Linux. Wahrscheinlich müssen Sie es in "Terminal" oder so ändern. Ich kenne Mac nicht. Sie finden dies unter Extras -> Optionen -> Umgebung. – Ropez

+0

FYI, ich habe den gleichen Fehler "Kann den Terminal-Emulator 'xterm' nicht starten". Auf meiner Fedora 15 Maschine musste ich ein "sudo yum install xterm" machen. Wenn Sie jetzt Ihren Code ausführen, kann qtcreator ein xterm öffnen und erfolgreich sein. –

2

Jeromes Lösung ist die richtige. Obwohl ich dir eine andere Alternative geben kann. Falls Sie X11 (aus welchem ​​Grund auch immer) nicht an der gleichen Stelle verwenden möchten (QtCreator -> Preferences -> Environment: General: Terminal), können Sie der Anwendung Terminal den folgenden Pfad geben: /Applications/Utilities /Terminal.app/Contents/MacOS/Terminal

Viel Spaß!

+1

Auf Qt Creator 2.6.x erstellt diese Lösung nicht weniger als 3 Terminal-Fenster und sie nicht Pop-up über anderen Fenstern, so dass Sie auf das Dock-Symbol klicken müssen, um den Inhalt zu sehen. –

2

Lösung für Windows.

In der .pro-Datei hinzu:

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

Zum Projekt -> Ausführen-Einstellungen und stellen Sie sicher, "Run in Terminal" aktiviert ist.

1

Für Mac-basierte Qt 2.4.0, klicken Sie auf die Registerkarte Projekt vertikal, die unterhalb der "Debug" entlang der vertikalen Linie wie Willkommen, Bearbeiten, Design befindet. Stellen Sie in Target-> Run sicher, dass "Run in terminal" aktiviert ist!

1

Ich hatte das Problem auf Mac „Kann nicht der Terminalemulator‚xterm‘ Start“ und es fixiert zu Einstellungen gehen, Umwelt und auf die Schaltfläche „zurücksetzen“ Button neben dem Klemme Textfeld.

Aus irgendeinem Grund standardmäßig es gerade gesagt, "xterm -e" aber nach dem Reset wurde es einen absoluten Pfad von "/usr/X11/bin/xterm -e".

Meine Konsole App lief dann gut.