<c>
Kann mir hier jemand weiterhelfen?:
Als möglichst einfaches, erstes Programm habe ich für QT Experimente
folgendes ausprobiert.
Projekttyp ist Konsolenanwendung. QT habe ich neu installiert und bein
bei Qt Creator 8.0.1 gelandet.
Ich habe meine Probleme im Code kommentiert, aber noch mal in Kürze.
1) Was mache ich denn nur beim readLine() falsch? Weder hält das
Programm irgendwie an, noch kann ich etwas eingeben.
2) Auch wenn zunächst eher sekundär. Wie kann ich denn wchars und
Umlaute benutzen?
3) ist es üblich, dass gar keine schwarze, 'richtige' Konsole aufgeht,
sondern der Output nur im QTCreator angezeigt wird?
1
#include<QtCore/QCoreApplication>
2
#include<QTextStream>
3
4
intmain(intargc,char*argv[])
5
{
6
QCoreApplicationa(argc,argv);
7
8
QTextStreamqin(stdin);
9
QTextStreamqout(stdout);
10
11
qout<<"echo eingeben:"<<Qt::flush;
12
QStringecho=qin.readLine();
13
14
/*Frage 1:
15
warum macht readLine() denn nichts? Programm läuft da einfach drüber
Hallo,
wenn Du im Creator unter projekteinstellungen Ausführen das Häkchen "im
Terminal ausführen" setzt, geht es. Dann macht der Creator ein terminal
window auf.
Max Mustermann schrieb:> 1) Was mache ich denn nur beim readLine() falsch? Weder hält das> Programm irgendwie an, noch kann ich etwas eingeben.
Ich hab das Programm ausprobiert. Bei mir funktioniert es.
> 2) Auch wenn zunächst eher sekundär. Wie kann ich denn wchars und> Umlaute benutzen?
QString nutzt Unicode, kann also alle entsprechenden Zeichen aufnehmen.
> wchar ? Beides führt nicht zum Ergebnis.> qout << "echö eingeben:" << Qt::flush;> qout << L"echö eingeben:" << Qt::flush;
Die Frage wäre, ob du in deinem Editor das richtige Encoding verwendest.
> 3) ist es üblich, dass gar keine schwarze, 'richtige' Konsole aufgeht,> sondern der Output nur im QTCreator angezeigt wird?
Mit welchem Betriebssystem bist du denn überhaupt unterwegs?
Grüß euch!
>Mit welchem Betriebssystem bist du denn überhaupt unterwegs?
win10. Einfältigerweise vergessen zu erwähnen. sry.
>Die Frage wäre, ob du in deinem Editor das richtige Encoding verwendest.
Also QTcreator. Das ist doch eine IDE, darin habe ich auch editiert.
>Ich hab das Programm ausprobiert. Bei mir funktioniert es.
Oh Mann, du machst mich fertig ;-) Ich werde nachher das ganze noch
einmal beginnen und auf dies Konsolen Häkchen achten.
Ich weiß jetzt gerade gar nicht mehr, ob ich eine Version auswählen
konnte beim online Installer. Machts eventuell Sinn etwas älteres zu
installieren?
Max Mustermann schrieb:> Oh Mann, du machst mich fertig ;-) Ich werde nachher das ganze noch> einmal beginnen und auf dies Konsolen Häkchen achten.
Du brauchst nicht von vorne anzufangen. Auf der rechten Seite des
qtcreator ist ein menupunkt "Projekte" Da drauf und die
Projekteinstellungen angucken. Wenn Häkchen gefunden, dann einfach aktiv
machen.
> Machts eventuell Sinn etwas älteres zu installieren?
Kommt drauf an, was Du vorhast. Lizenzrechtlich sind ältere Versionen
besser. Wenns denn auf alten Betriebssystemen laufen soll, zwingend.
Max Mustermann schrieb:> Grüß euch!>>>Mit welchem Betriebssystem bist du denn überhaupt unterwegs?>> win10. Einfältigerweise vergessen zu erwähnen. sry.>>>Die Frage wäre, ob du in deinem Editor das richtige Encoding verwendest.>> Also QTcreator. Das ist doch eine IDE, darin habe ich auch editiert.
Ok, wenn es Windows ist, kann es auch en der Konsole liegen. Deren
Encoding muss auch passen, und mein letzter Stand ist, dass die leider
immer noch nicht per Default utf-8 verwendet, sondern irgend so ein
Encoding, das noch aus DOS-Zeiten stammt. Das müsste man irgendwie
umstellen können, aber da kenne ich mich zu wenig damit aus.
>>Ich hab das Programm ausprobiert. Bei mir funktioniert es.>> Oh Mann, du machst mich fertig ;-) Ich werde nachher das ganze noch> einmal beginnen und auf dies Konsolen Häkchen achten.> Ich weiß jetzt gerade gar nicht mehr, ob ich eine Version auswählen> konnte beim online Installer. Machts eventuell Sinn etwas älteres zu> installieren?
Sollte eigentlich keine Rolle spielen.
Rolf M. schrieb:>> Also QTcreator. Das ist doch eine IDE, darin habe ich auch editiert.>> Ok, wenn es Windows ist, kann es auch en der Konsole liegen. Deren> Encoding muss auch passen, und mein letzter Stand ist, dass die leider> immer noch nicht per Default utf-8 verwendet, sondern irgend so ein> Encoding, das noch aus DOS-Zeiten stammt. Das müsste man irgendwie> umstellen können, aber da kenne ich mich zu wenig damit aus.
An dem liegt es nicht. UTF-8 ist wie auch DOS ANSI kompatibel.
>Typisch Max Mustermann, die vergessen ja auch ihren Namen.
;-) kann man doch durch die Allgemeingültugkeit eigentlich gar nicht.
Ich habe gestern nur schnell geschaut, jedoch einen entsprechenden
Konsolenhaken noch nicht gefunden. Erstaunlicherweise kann ich die
erzeugte exe-Datei nicht einfach starten. 3 Systemfehler entstehen.
libgcc_s_seh-1.dll wird nicht gefunden.
Qt6Core.dll wurde nicht gefunden
libstdc++-6.dll wurde nicht gefunden
Qt Creator habe ich noch einmal deinstalliert und installiert. Ist das
ein 'bekanntes' Problem weil ich etwas falsch gemacht habe?
Wenn du eine Lösung hast, bin ich völlig einverstanden, das süffisant
platt zu walzen, Udo. :-)
Du kannst die nicht manuell starten, weil das Programm die dlls nicht
findet.
Entweder benutzt Du dann windeployqt.exe. Da muss man sich aber erst
einlesen. Die befindet sich im qt Programmverzeichnis. Bei mir ist das
unter
c:\Qt\Qt5.12.10\5.12.10\mingw73_32\bin\windeployqt.exe Ist Versions und
Compilerabhängig
Oder du kopierst die angemeckerten erforderlichen DLLs manuell in das
Verzeichnis, wo Dein Programm steht. Die musst Du dann im Qt
Installationsverzeichnis suchen. Bei mir stehen sie (unter Windows) in
c:\Qt\Qt5.12.10\5.12.10\mingw73_32\bin. Dann kannst Du das Programm auch
starten.
Wenn Du im Creator startest, setzt der die Pfade richtig, da braucht man
sich um die DLLs nicht kümmern.
Hast Du mehrere Compiler installiert?
Qt kann mehrere Betriebssysteme und Compiler, das macht die Bedienung
dann kompliziert. Der Lohn ist plattfomunabhängigkeit. Ich benutze das
für Android,Linux und Windows und muss auch immer wieder lesen.
Udo K. schrieb:> An dem liegt es nicht. UTF-8 ist wie auch DOS ANSI kompatibel.
Meinst du ASCII? Das enthält keine Umlaute, und die Konsole stellt in
Voreinstellung kein UTF-8 dar. Daher werden Umlaute nicht richtig
angezeigt.
Udo K. schrieb:> Rolf M. schrieb:>>> win10. Einfältigerweise vergessen zu erwähnen. sry.>>>>> Typisch Max Mustermann, die vergessen ja auch ihren Namen.
Immerhin hat er das mit dem Zitieren im Griff. 😉
Martin B. schrieb:> Oder du kopierst die angemeckerten erforderlichen DLLs manuell in das> Verzeichnis, wo Dein Programm steht.
Das reicht nicht, denn Qt lädt zur Laufzeit Plugins nach, die ebenfalls
da sein müssen. Das wird aber erst nach dem Start angemeckert. Bei so
einem einfachen Programm wird wahrscheinlich nur das Plattform-Plugin
nötig sein, aber bei graphischen Programmen werden das schnell Dutzende.
> Qt kann mehrere Betriebssysteme und Compiler, das macht die Bedienung> dann kompliziert. Der Lohn ist plattfomunabhängigkeit. Ich benutze das> für Android,Linux und Windows und muss auch immer wieder lesen.
Ich auch. Dabei habe ich mir die entsprechenden
Cross-Compiler-Umgebungen zusammengebastelt, um Qt-Programme direkt von
Linux aus für alle drei Systeme compilieren zu können. Für den
Windows-Crossbuild war mxe eine große Hilfe.