|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 09.10.2007, 09:53 Titel: Solved: Glade |
|
|
Arbeite mich gerade in GTK+Freebasic ein. Das geht auch schon halbwegs. Aber GTK ohne Glade (GUI-Builder von GTK) ist natürlich nur halblustig. Wie ich allerdings die Ergebnisse von Glade mit Freebasic benutze, ist mir zur Zeit noch ein Rätsel. Kennt sich jemand damit aus? Glade baut im Wesentlichen ein XML und ein Verzeichnis voller c-Code - den ich zwar theoretisch von Hand in Freebasic übersetzen kann, aber Spass machen tut das nicht wirklich. Auf Freebasic.net wurde meine Frage schon mal gepostet - ohne auswertbare Antwort:
http://www.freebasic.net/forum/viewtopic.php?t=9263&highlight=glade
Benutzt jemand Glade+Freebasic schon? Bin für jeden Tipp dankbar.
Viele Grüsse!
Croco
Zuletzt bearbeitet von croco97 am 15.10.2007, 22:42, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 09.10.2007, 17:10 Titel: |
|
|
Kann dir leider nicht zu deiner eFrage helfen.
Aber wenn das dann funzt, wärst du dann bereit ein kleines Tutorial zu schreiben? _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 09.10.2007, 17:38 Titel: |
|
|
Wenn die C Dateien "nur" Funktionen enthalten, dann kannst du sie mit Dev-CPP oder direkt mit dem GCC zu einer statischen Library compilieren, die du ohne weiteres (bis auf die Headerdatei, versteht sich) direkt in FB benutzten kannst.
Nur mal so als Vorschlag _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 09.10.2007, 19:40 Titel: |
|
|
Hallo croco97.
Ich verwende in FreeBASIC gtk und glade-3, ich weiß nicht, welche version du hast.
Bei mir wird eine .xml datei erstellt, die ich mit gtk/glade in FreeBASIC laden kann.
Die Grundlagen habe ich aus den Beispielen in FreeBASIC/examples/libraries/Gtk/, für dich sollte vor allem "glade-xml.bas" und die dazugehörige (von glade erstellte) test.xml interessant sein. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 09.10.2007, 20:32 Titel: |
|
|
Vielen Dank an alle!
@Mao: Das ist sogar der Zweck des Ganzen: Das nächste Kapitel im Oma-Tutorial Teil 3 soll GTK gewidmet werden. Gerüchteweise habe ich gehört, der Autor sollte erstmal selbst ein wenig lernen, über was er schreibt ))
@csde_rats: Nein, so einfach ist das nicht. Erstens wird es kaum möglich sein, GTK (inkl. Pango, Glib, Cairo usw.) mal kurz so selbst zu kompilieren. Zweitens wäre mir damit nicht geholfen, denn Glade ist ein C-Code-Builder, kein Compiler. Ich müsste also jedes Mal ne neue Lib kompilieren, wenn ich am GUI was geändert habe - keine gute Idee.
@Michael:
Neueste Version. Ja, die XML wird gebaut. Ich hab auch in den Examples vpn FB gesehen, dass man das mit speziellen Funktionen ansteuern kann.
Leider aber folgendes:
1. Ich hab in der Glade-Doku keinen Hinweis auf die XML-Funktionen gefunden. Wie benutze ich sie z.B. in Verbindung mit Menüs?
2. Die XML-Funktionen allein können nicht reichen, da ja die Callbacks definiert und deklariert werden müssen. Somit die Frage: Was ersetzt eigentlich die XML? main.c? main.h? support.c? support.h? Was muss ich dennoch einbinden? Und muss ich das, was ich dann einbinden muss (mindestens callback.c/callback.h) von Hand von C nach FB übersetzen? Oder gibt's da Hilfetools? Diese Frage wäre mir die wichtigste.
Vielen Dank schon mal. Ich recherchiere weiter und halte Euch auch auf dem Laufenden!
Grüsse!
Croco |
|
Nach oben |
|
|
csde_rats
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 09.10.2007, 20:47 Titel: |
|
|
croco97 hat Folgendes geschrieben: | 2. Die XML-Funktionen allein können nicht reichen, da ja die Callbacks definiert und deklariert werden müssen. Somit die Frage: Was ersetzt eigentlich die XML? main.c? main.h? support.c? support.h? Was muss ich dennoch einbinden? Und muss ich das, was ich dann einbinden muss (mindestens callback.c/callback.h) von Hand von C nach FB übersetzen? Oder gibt's da Hilfetools? Diese Frage wäre mir die wichtigste. |
Mit GCC bzw. Dev-CPP (IDE) zu einer Lib/Object File compilieren, und dann einfach beim FB Prog "ObjectFile.o" (Muss im selben Ordner wie Prog sein) angeben.
Fertig. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
|
croco97
Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 15.10.2007, 22:45 Titel: |
|
|
OK, jetzt habe ich etwas Überblick, denke ich.
Wie gesagt, ich schreibe noch mal ausführlicher drüber, aber das kann noch eine Zeit dauern, daher hier mal ein Vorabhinweis.
Glade und Freebasic
Generell: Ursprünglich war Glade ein GTK-GUI-Builder für C, speziell für MSVC, Dev-Cpp und ein paar andere IDE's. Es generierte Make- und Src-Dateien, um eine ganze GTK-Applikation zu kompilieren (in C).
Zum Glück für uns FB'ler gibt es seit einiger Zeit einen Zusatz, libglade. Hier wird statt der ganzen C-Dateien eine XML-Datei erzeugt, die den GUI-Aufbau beschreibt. Anhand derer erzeugt libglade interpretierend den GUI-Aufbau. (Was den netten Effekt hat, dass man das GUI ändern kann ohne die Anwendung neu kompilieren zu müssen.)
Allerdings ist das schönste GUI trostlos, wenn man klickt und sich dann nichts tut. Und das war meine Ausgangsfrage: Was wird für den "Dialog" zwischen eigenem Programm und libglade benötigt?
Nun, Glade generiert (zumindest in der von mir benutzten Version 2.12) immer noch den C-Source-Code. Und davon benötigen wir die Dateien callback.h und callback.c, d.h. die Deklaration und Definition der Callback-Routinen. Und das war's auch schon. Alles andere (support.*. interface.* usw.) können wir vergessen.
Die Callback-Routinen sind nur leere Hülsen (klar, Glade weiss ja nicht, was auf einen Klick hin passieren soll) und so hat man die Header und Hülsen mit ein paar Suchen-Ersetzen-Aktionen schnell in FB umgewandelt.
Wichtig sind so ein paar Feinheiten:
1. Glade vergisst manchmal, im XML den Widgets eine <signal>-Eigenschaft mitzugeben. Z.B. bei normalen Buttons. Das kann man aber per Hand schnell nachtragen. Die <signal>-Eigenschaft definiert die Art der Aktion (z.B. "activated", "closed" oder "clicked") und den Namen des Callbacks, der damit umgehen soll.
2. Glade kann richtig schöne deutsche Umlaute im GUI anzeigen, aber beim Versuch, die Callbacks entsprechend zu benennen, taucht im XML an Stelle der Umlaute nur Kraut und Rüben auf. Muss man also von Hand korrigieren.
3. Leicht vergisst man, bei der Callback-Sub-Definition hinter die Argumentliste ein "export" zu hängen.
Alles in allem ist es aber bisher überraschend unkompliziert.
Viele Grüsse und schönen Abend!
Croco |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|