ubuntuusers.de

GTK + FreeBasic

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

HP-Fan

Avatar von HP-Fan

Anmeldungsdatum:
2. September 2012

Beiträge: 394

Wohnort: Schweiz (CH)

Hallo Leute

Ich will mir FreeBasic installieren. Auf der dortigen Supportseite wird hierfür die GUI GTK empfohlen. Ich starte also eine Websuche und was muss ich da sehen? Richtig - es gibt mal wieder mehrere davon. Woher weiss ich, welche die korrekte Version für FreeBasic ist? (da gibt es GTK, GTK+, GTK+2, GTK+3...)

Und wenn wir gerade dabei sind einen Tipp, woher ich das herbekomme... 😀

Gruß HP-Fan

MaSchle.inc

Avatar von MaSchle.inc

Anmeldungsdatum:
16. Dezember 2006

Beiträge: 268

Hallo

Ich hatte vor längerer Zeit den Freebasic-compiler am laufen. Dieser wurde über ein sh-script installiert. Debianpakete gab es nur für eine ältere Version des Compilers. Wenn Du eine gtk basierenden Desktop verwendest sind einige Bibliotheken schon auf den Rechner. mit Glade kannst Du graphische Benutzerelemente erstellen. GTK3 ist aktuell GTK2 wird noch benutzt (xfce). Wenn Du glade installierst sollte alles dabei sein was du braucht.

Schau mal hier https://www.freebasic-portal.de/tutorials/gtk-glade3-rad-70.html

FreeBasic ist leider wenig verbreitet. Ich bin für meine Basteleien auf Python umgestiegen.

Nur mal so als Info

Gruss Martin

HP-Fan

(Themenstarter)
Avatar von HP-Fan

Anmeldungsdatum:
2. September 2012

Beiträge: 394

Wohnort: Schweiz (CH)

Abend MaSchle.inc

Erst mal Danke für deine Ausführungen. Wenn ich nur die ersten beiden Absätze deiner Verlinkung lese, bekomme ich schon einen Anfall 😛

Das ist doch "Overkill" (widget,library, xml usw...).

Es muss doch einen einfacheren Weg geben, in einem Linuxsystem eine höhere Programiersprache wie Basic oder eben mein geliebtes Perl in ein Ausgabefenster zu packen. Ich bin nicht darauf angewiesen, fertige Schaltknöpfe usw. zu nutzen. Ich kann das an entsprechender Programmstelle auch getrost selber programmieren.

Ich habe Ubuntu 16.04 "out of the box" vorliegen. Da sehe ich über die Ubuntu-Software-Verwaltung, dass außer dem Terminal auch noch ein XTherm installiert ist. Eignet sich das nicht auch zur Programmausgabe?

Perl ist auf dem System drauf. Das Perl-Testprogramm "Hallo-Test" kann ich bsp. im Terminal mit

1
perl Hallo-Test.pl

starten. Ich brauche aber ein Fenster, dass mir Werte über die Cursorposition, eingetippten Zeichen und eventuell auch Mauszeigerpositionen zurück gibt. Ich muss nochmal mit dem Brotkasten (C64) anno dazumal vergleichen: Mit PEEK- und POKE- Befehlen waren dort direkte Auslesung und Einschreibungen in Speicherregister und ggf. somit auch in Bildschirmpositionen möglich. Ich habe das Framework → Software fürs Programmieren ->Betriebssystem ->Fenstermanager noch nicht ganz verinnerlicht. Kann mir jemand vielleicht ganz kurz und ganz einfach erklären, warum - wieso - weshalb - das bei einem PC so umständlich sein muss?

Wenn ich ein eigenes Programm als Webanwendung über .shtml / Dateninput über cgi / Ausgabe über Perl realisiere, dann zeigt doch der Browser auch einfach meine Perl-Programmausgabe an. Und ich muss keine "Fensteranzeigeprogramme" komplex ansteuern. Gut, die Cursorposition im Textfeld habe ich da auch nicht direkt (höchsten indirekt über JavaScript),.. aber ihr wiss vielleicht was ich meine.

Meine Frage nochmals präziser:

Um ein selbst geschriebenes Programm (Perl oder Basic-Ableger) auf möglichst vielen Ubuntu-Systemen zum Laufen zu bringen (eventuell auch auf einem kleinen Linux-Live-System / oder Raspberry PI3) Was braucht es dazu? Oder schaue ich erst einmal, dass ich die entsprechende Programiersprache einschließlich dem Fenstermanager auf diesem System zum Laufen bekomme, und wenn es soweit ist überlege ich mir dann Möglichkeiten, das fertige Programm zu deportieren (in ein Zielsystem, dass noch nicht feststeht?

Gruß HP-Fan

PS.: Ich arbeite jetzt doch das FreeBasic und GTK-Tutorial durch. Mals sehen wohin das führt...

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Xtherm ist witzig. ☺ XTerm ist ein normaler Terminalemulator für Textaus- und eingaben. Sozusagen der ”Ur”-Terminal-Emulator im gegensatz zu den desktopumgebungsspezifischen Terminal-Emulatoren die man normalerweise bei einer grafischen Oberfläche verwendet.

Wenn Du bei dem ”Overkill” einen Anfall bekommst, warum nimmst Du bei FreeBASIC nicht einfach die Grafikbefehle die schon zum normalen Sprachumfang gehören? Also die die so ähnlich sind wie das was Du von AmigaBASIC kennst?

Falls Du GUIs verwenden willst, wirst Du andererseits um den ”Overkill” wohl nicht wirklich herum kommen, denn das ist eigentlich keiner. Das ist normal für GUI-Rahmenwerke. Zumindest für die beiden üblichen Gtk und Qt. Tk ist da vielleicht etwas weniger, das kann aber auch deutlich weniger um man merkt dem die Jahrzehnte IMHO doch an, sowohl was die Optik und den Widgetumfang, als auch die Handhabung angeht.

Beim C64 hat man das doch auch nicht mit PEEK und POKE gemacht, sondern mit einer BASIC-Erweiterung oder gleich in Assembler. Und GUI-Programmierung unter GEOS ist den heutigen GUI-Rahmenwerken gar nicht so unähnlich.

Auf ”Speicherregister” kann man in der Form bei einem PC mit einem ”normalen” modernen Betriebssystem nicht mehr so einfach zugreifen weil es nicht mehr *ein* Programm gibt, dem quasi der komplette Rechner gehört, sondern viele Programme gleichzeitig laufen und ja nicht alle auf den gleichen Registern herumwerkeln können ohne sich auf die Füsse zu treten. Zudem ist die Hardware in jedem Rechner anders, also gibt es auch nicht *die* Register die in jedem PC an gleicher Stelle sitzen und das gleiche bedeuten/machen. Ausserdem wäre es schlecht für die Sicherheit (sowohl „security“ als auch „safety“) wenn alle Programme zugriff auf alles hätten.

Also gibt es das Betriebssystem und einen X-Server der ganz grundlegende Grafikfunktionen zur Verfügung stellt, und eine Fensterverwaltung die für Darstellung und Position der Fenster zuständig ist, und die einzelnen Anwendungen verwenden dann GUI-Rahmenwerke um innerhalb des eigenen Fensters Inhalte einfach und in einer anwendungsübergeifend ähnlichen Art darzustellen.

Ein GUI-Rahmenwerk braucht man zudem für die Anordnung, denn einfach wie ”früher” alles an irgendwelchen absoluten Pixelpositionen zu platzieren, funktioniert heute nicht mehr bei dem ganzen Zoo von Grafikauflösungen, Displaygrössen, Ausrichtungen, und dazu dann auch noch individuellen Einstellungen der Nutzer was Schriftgrössen, Themes, und so weiter angeht.

Im CGI-Fall ist der Browser Dein Anzeigeprogramm, und der kann auch eine Menge und ist ziemlich komplex. Das HTML ist da in etwa das was die XML-Dateien bei Gtk und Glade sind — eine Beschreibung der GUI.

Die präzisierte Frage ist IMHO nicht einfach zu beantworten oder auch zu einfach — Du brauchst halt das selbstgeschriebene Programm, und all die Abhängigkeiten die es verwendet, auf den Systemen auf denen es laufen soll. Perl ist bei Ubuntu dabei und Du brauchst Dich nicht weiter um die Systemarchitektur kümmern weil dein Programm davon unabhängig ist. Wenn Du eine ”nativ” kompilierte Programmiersprache bzw. Implementierung selbiger verwenden willst, muss es für die Zielarchitekturen einen (Cross)Compiler geben. Was Du als Abhängigkeiten brauchst hängt ganz davon ab was Du womit programmierst.

Programme deportieren klingt irgendwie nach unschöner deutscher Geschichte. 😉

Mir ist irgendwie immer noch nicht klar was Du überhaupt erreichen willst mit Deiner ”Fensterausgabe”. Vielleicht möchtest Du auch eine Anbindung an die Simple Directmedia Layer-Bibliothek (SDL)‽ Das sollte es sowohl für Perl als auch für FreeBASIC geben.

HP-Fan

(Themenstarter)
Avatar von HP-Fan

Anmeldungsdatum:
2. September 2012

Beiträge: 394

Wohnort: Schweiz (CH)

Abend zusammen

Erstmal danke für die ausführliche Erklärungen. Es hat sich gerade heraus gestellt, dass das Zielsystem definitiv ein Raspberry PI3 werden soll. Das schmeißt natürlich meine ganze Planung wieder über den Haufen!

Daraus folgt, dass ich eine für mich völlig neue Programmiersprache lernen muss → Python 😕 (recommended)

Außerdem geht jetzt die "Sucherei" nach der passenden GUI wieder los!!!

Und - entwickelt werden soll das ganze auf diesem Ubuntu 16.04 System!!! Das sieht wieder einmal nach einem Spagat "par ex­cel­lence" aus 😬

Da gibt es wohl ein Interface Tcl(Tool Command Language) to Tk (GUI-Tool Kit). In Verbindung mit einem TouchScreen-Display "relativ" einfach - 😊

Als erstes muss ich wohl Python auf Ubuntu 16.04 installieren- das ist klar. Brauche ich dann als nächstes TcL oder Tk auf dem Entwicklungs-Rechner?

Gruß HP-Fan

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Wenn Du bei Deinem "geliebten Perl" bleiben willst, gibt es sicherlich keinen Grund, auf irgend ein Basic umzuschwenken und das zu lernen.

Denn die Kopplung von Perl mit GTK ist etabliert und gut dokumentiert.
Jetzt müsstest Du nur mal gucken, wie das Zeug portabel auf den Raspi ist ...
(aber ich würde mal davon ausgehen, dass das geht)

LG,

track

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

@HP-Fan: Das ändert an der Planung wenig. Ob nun Debian, oder Ubuntu das auf Debian basiert, die Paketauswahl ist fast die gleiche. Und warum Du für den Raspi nun unbedingt Python lernen musst, verstehe ich auch nicht. Nicht das ich von Python abraten würde — ich mag die Sprache, aber Perl lässt sich da genau so leicht installieren wie unter Ubuntu — und letztlich wohl jeder anderen Linux-Distribution mit einer irgendwie gearteten Paketverwaltung. Da gibt es genau Null ”Spagat”.

Zur Suche nach der passenden GUI hatte ich doch schon geschrieben das es für Tk, Gtk, und Qt Anbindungen an die gängigen Sprachen gibt, also auch für Perl und Python.

Antworten |