spwmarluk
(Spwmarluk)
8 Listopad 2009 19:01
#1
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ć
_alex
([alex])
8 Listopad 2009 19:13
#2
“Wesoła etykieta :)” - to nie jest latin1;
porównujesz z latin1 więc nigdy nie będzie pasować.
nr47
(Sawyer47)
8 Listopad 2009 19:27
#3
Pod Windows trzeba do pliku projektu dopisać… z tego co pamiętam to “QT += CONSOLE”, ale głowy nie daję.
spwmarluk
(Spwmarluk)
8 Listopad 2009 19:36
#4
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.
_alex
([alex])
8 Listopad 2009 19:38
#5
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.
spwmarluk
(Spwmarluk)
12 Listopad 2009 12:59
#6
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?
_alex
([alex])
12 Listopad 2009 15:23
#7
Możesz usuwać wierszy jak ich ilość przekroczy ustaloną ilość.