Forum: Compiler & IDEs Textausgabe in Window mit GCC


von chris (Gast)


Lesenswert?

Hallo alle,

welches System kann man für eine Einfache Textausgabe in ein Fenster 
verwenden?

Für einfache Testprogramme, die in der console laufen, kann ich einfach 
printf ... benutzen.

Welche einfache Möglichkeit gibt es, den Text in ein Fenster auszugeben?

Es gibt verschiedene GUI-Klassenlibraries wie z.B. QT, WxWidgets ..
Die Einarbeitung in eines dieser System scheint mir aber ziemlich 
aufwendig.

Danke für die Hilfe,
chris

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

chris schrieb:

> Es gibt verschiedene GUI-Klassenlibraries wie z.B. QT, WxWidgets ..
> Die Einarbeitung in eines dieser System scheint mir aber ziemlich
> aufwendig.

Wird dir aber kaum was anderes übrig bleiben, das "Hello world" in
einem Fensterladen (egal, ob der nun von Winzigweich oder vom MIT
kommt) ist nun einmal nicht mehr in einer Zeile Code abzuhandeln.

Allerdings dürfte ein Template für eine simple Applikation, die nur
einen Bereich besitzt, in dem man Text abladen kann, relativ schnell
gezimmert sein.  Je nach Toolkit gibt's dafür noch Hilfswerkzeuge,
die dir ein Gerippe für sowas zimmern.

Du musst allerdings prinzipiell umdenken.  Fensterläden wollen
regelmäßig bedient werden, damit sie ihre eigenen Hausaufgaben
erledigt bekommen (dazu gehört minimal die Reaktion auf Anforderungen
von außen, bestimmte Teile der Applikation neu zu zeichnen, weil
bspw. bislang ein Fenster davor war, jetzt aber dort was dargestellt
werden muss).  Damit kann deine eigentliche Applikation nicht mehr
die ganze Zeit im Vordergrund beliebig über die Resource CPU
verfügen.  Entweder musst du die Vordergrundaufgabe in kleine
Häppchen einteilen und zwischendrin den Fensterladen fragen, ob er
auch was zu tun hätte, oder aber du musst dich mit Multithreading
vertraut machen.

von chris (Gast)


Lesenswert?

>Du musst allerdings prinzipiell umdenken.  Fensterläden wollen
>regelmäßig bedient werden, damit sie ihre eigenen Hausaufgaben
>erledigt bekommen

Das Problem ist: Ich will nicht umdenken. Alle Templates, die ich so 
sehe, erfordern einen ziemlichen Einarbeitungsaufwand. Ich verstehe 
nicht, warum nicht mal jemand ein Fensterchen gemacht hat, bei dem des 
Textausgabe und eine Tastatureingabe gibt, die man mit putchar und 
getchar ansprechen kann und vielleicht sogar noch den Cursor 
postionieren kann.

von P. S. (Gast)


Lesenswert?

chris schrieb:

> Das Problem ist: Ich will nicht umdenken. Alle Templates, die ich so
> sehe, erfordern einen ziemlichen Einarbeitungsaufwand. Ich verstehe
> nicht, warum nicht mal jemand ein Fensterchen gemacht hat, ...

Klar, wer nicht denken will, versteht nix. Irgendwie logisch.

von Mark B. (markbrandis)


Lesenswert?

chris schrieb:
> Ich verstehe
> nicht, warum nicht mal jemand ein Fensterchen gemacht hat, bei dem des
> Textausgabe und eine Tastatureingabe gibt, die man mit putchar und
> getchar ansprechen kann und vielleicht sogar noch den Cursor
> postionieren kann.

Du könntest Dir z.B. mal AutoIt anschauen: 
http://www.autoitscript.com/autoit3/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

chris schrieb:

> Ich verstehe
> nicht, warum nicht mal jemand ein Fensterchen gemacht hat, bei dem des
> Textausgabe und eine Tastatureingabe gibt, die man mit putchar und
> getchar ansprechen kann und vielleicht sogar noch den Cursor
> postionieren kann.

Weil das keine große ,,Kundschaft'' hat.

Das, was du willst, ist eigentlich schon mit einem Terminalemulator
am besten abgedeckt.  Dein Pech, dass ebendieser Emulator unter
Windows (oft ,,DOS-Fenster'' genannt, obwohl da schon lange nichts
mehr von MS-DOS dabei ist) wohl eher zu den stiefmütterlich
gepflegten Teilen von MS Windows gehört.  Die Emulatoren der Unix-
Welt haben da auch in den letzten Jahren schon etwas mehr an
Pflege erlebt, und zusammen mit sowas wie Curses als API kann man
mehr oder minder brauchbare zeichenbasierte Applikationen zimmern.
(Wie viel Pflege da mittlerweile drin steckt, merkt man dann, wenn
man mal den w3m mit Unterstützung zur Darstellung von Bildern erlebt
hat: da läuft ein eigentlich textorientierter Webbrowser in einem
xterm und rendert dir fröhlich all die normalen Bilder der Webseiten
mit in das Fenster, reagiert auf Mausklicks etc.)

Wenn man eine richtige Applikation machen will, braucht man ganz
schnell viel mehr als das:

. Menüs
. copy&paste
. Container, um verschiedene Teile anordnen zu können

Einen brauchbaren Kompromiss stellen für viele Fälle irgendwelche
GUI-Einbindungen in Scriptsprachen dar, angefangen bei Tcl/Tk als
der ältesten ihrer Art.

von chris (Gast)


Lesenswert?

>Du könntest Dir z.B. mal AutoIt anschauen:
>http://www.autoitscript.com/autoit3/

Das macht keinen schlechten Eindruck. Aber ich befürchte, damit kann ich 
das Problem der Textausgabe nicht lösen. Mein Programm gibt ja ständig 
per printf Zeichen aus und diese sollen synchron dargestellt werden.

>Das, was du willst, ist eigentlich schon mit einem Terminalemulator
>am besten abgedeckt.

Da hast Du völlig recht. Mit dem Linux Terminal ( console ) bin ich 
völlig zufrieden. Dort kann ich per "Escape Sequenz" den Cursor 
positionieren und die Schrift einfärben.

Mein kleines Projekchen ist den Propeller Emulator auf den PC zu 
portieren:

http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=76

von Joerg W. (joergwolfram)


Lesenswert?

ich benutze für den "Hausgebrauch" immernoch das alte GTK1, da das noch 
relativ unkompliziert auch ohne C++ nutzbar ist. Damit das Ganze auch 
auf Rechnern ohne die entsprechenden Libs läuft, kann man GTK und GLIB 
auch einfach statisch dazulinken.

Gruß Jörg

von Mario G. (mario)


Lesenswert?

Ich kann FLTK empfehlen (http://www.fltk.org). Dies ist ein 
Fenster-Tool, welches sich sehr einfach (auch für C-Programmierer) 
programmieren lässt.

Das Tutorial ist sehr sehenswert: 
http://seriss.com/people/erco/fltk-videos/

Einfach zurücklehnen und anschauen...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.