[C++/Qt4] Qt Creator - cout na cmd (win)

Witam,

Mam pytanie jak skierować cout na cmd w Windows, w ogóle czy jest możliwość powiązania linii komend z programem okienkowym?

Stworzyłem sobie przykładowy programik jak w kursie http://blog.matthew.org.pl/2009/06/03/kurs-qt-czesc-1-sygnaly-sloty-i-wlasne-widgety/, niby wszystko działa, ale nie do końca.

Chciałbym, aby przycisk zmieniający etykietkę zmieniał ją za każdym kliknięciem myszą, w związku z tym dopisałem coś takiego:

void MainWindow::foo()

{

        QByteArray ba = label->text().toLatin1();

        const char * etykietka = ba.data();

        if ((qstrcmp ( etykietka, "Wesoła etykieta :)" )) == 0)

        {

            label->setText(tr("Smutna etykieta :("));

        }

        else

        {

            label->setText(tr("Wesoła etykieta :)"));

        }

}

Ale etykieta zmienia się tylko raz. Nie wiem dokładnie co się dzieje w kolejnych liniach, więc chciałbym wyswietlić sobie wynik porównania np. do linii komend. Chyba, że łatwiej będzie stworzyć w głównym oknie jakieś pole imitujące cmd i tam sobie przekierowywać, ale też nie wiem jak to zrobić :confused:

“Wesoła etykieta :)” - to nie jest latin1;

porównujesz z latin1 więc nigdy nie będzie pasować.

Pod Windows trzeba do pliku projektu dopisać… z tego co pamiętam to “QT += CONSOLE”, ale głowy nie daję.

nie wiem dlaczego tak bezmyślnie to skonwertowałem… Po poprawce oczywiście działa:)

Jednak będę musiał czasami wysłać jakiś komunikat do usera, czy wyświetlić co w danym momencie robi programik, więc przydałoby się jakieś pole do tych celów.

Jak masz tryb okienkowy to nie masz cmd.

Możesz ewentualnie odpalić proces cmd.exe i przychwycić standard input, z tym że to trochę bez sensu.

Jeżeli potrzebujesz wyświetlać jakieś komunikaty to do tego jest wiele prostszych sposobów.

Wyświetlanie komunikatów zrealizowałem za pomocą QTextEdit w trybie readonly, rzeczywiście dosyć prosty w obsłudze.

A czy jest on jakoś zabezpieczony przed zapisaniem zbyt dużej ilości danych?

Możesz usuwać wierszy jak ich ilość przekroczy ustaloną ilość.