2009-08-31 17 views
26

Opracowuję bardzo prostą aplikację na moim Macu przy użyciu QtCreatora.Wejście konsoli z Qt Creator

Jest to aplikacja konsolowa i chcę, aby użytkownik wprowadził jej nazwę, a następnie wyświetl jego nazwę. Oto kod:

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

Uruchamiając aplikację z Qt Creator, napisu „wpisz swoją nazwę:” jest wyświetlany w zakładce „Output Application”. Ale jeśli wpiszesz jakiś tekst i naciśnie klawisz Enter, nic się nie dzieje.

Co jest nie tak?

Odpowiedz

23

Znalazłem rozwiązanie. Z Qt Creator 1.3.0 (Mac OS X), o to co miałem zrobić:

  • Projekt-> Ustawienia biegu, sprawdź "Uruchom w terminalu" (dzięki Ropez)
  • Qt Creator-> Preferencje: Environnement: General: Terminal: Musiałem umieścić całą ścieżkę do XTerm. Dla mojej konfiguracji musiałem wstawić /usr/x11/bin/xterm -e.

Teraz wszystko działa poprawnie!

+1

W mojej wersji QTcreator (3.6.0) zakładka "Projekt" to pionowa zakładka "Projekty" (z "s"). Możesz go znaleźć po lewej stronie głównego okna ide. Jeśli chodzi o Preferencje i ścieżkę terminala, znajduje się on w "narzędziach> opcji> Środowisko (zakładka pionowa)> System (zakładka Poziom)" –

7

Przejdź do Project -> Uruchom ustawienia i upewnij się, że zaznaczona jest opcja "Run in Terminal".

BTW:

std::cin >> Name; 

prawdopodobnie nie jest to, co chcesz. Będzie czytać tylko jeden token (zazwyczaj tylko imię). Powinieneś rzucić okiem na getline lub string version.

+0

Dzięki za odpowiedź. Sprawdziłem pole wyboru "Uruchom w terminalu", ale teraz mam ten problem podczas uruchamiania aplikacji: Nie można uruchomić emulatora terminala "xterm". Każdy pomysł? –

+0

OK, nigdy nie używałem Qt Creator na Macu, tylko Linux. "xterm" to nazwa domyślnego emulatora terminala w systemie Linux. Prawdopodobnie musisz zmienić go na "terminal" lub coś podobnego. Znowu nie znam Maca. Znajdziesz to w menu Narzędzia -> Opcje -> Środowisko. – Ropez

+0

FYI, mam ten sam błąd "Nie można uruchomić emulatora terminala" xterm "". Na mojej maszynie Fedora 15 musiałem wykonać "sudo yum install xterm". Teraz po uruchomieniu kodu qtcreator może otworzyć xterm i odnieść sukces. –

2

Rozwiązanie Jerome jest właściwe. Chociaż mogę dać ci inną alternatywę. Jeśli nie chcesz używać X11 (z jakiegoś powodu) w tej samej pozycji (QtCreator-> Preferencje-> Środowisko: Ogólne: Terminal) możesz podać ścieżkę do aplikacji Terminal tak: /Applications/Utilities /Terminal.app/Contents/MacOS/Terminal

Ciesz się!

+1

W Qt Creator 2.6.x to rozwiązanie tworzy nie mniej niż 3 okna terminala i nie wyskakuj nad innymi oknami, więc musisz kliknąć ikonę Dock, aby zobaczyć zawartość. –

2

Rozwiązanie dla systemu Windows.

W .pro plików dodatek:

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

Idź na projekt -> Uruchom ustawienia i upewnij się, że „Uruchom w terminalu” jest zaznaczone.

1

Dla systemu Qt 2.4.0 opartego na komputerach Mac kliknij kartę pionową Projekt, która znajduje się pod "Debugowaniem" wzdłuż tej samej linii pionowej co Witaj, edytuj, projektuj. W Target-> Run, upewnij się, że "Run in terminal" jest zaznaczone!

1

miałem „Nie można uruchomić emulator terminala«xterm»” problem na Mac i naprawić go, przechodząc do ustawień, Środowisko i klikając „Wyczyść” przycisk obok Terminal pole tekstowe.

Z jakiegoś powodu domyślnie po prostu powiedział: "xterm -e", ale po resecie stało się absolutną ścieżkę "/usr/X11/bin/xterm -e".

Moja aplikacja konsolowa działała dobrze.