Häufig gestellte Fragen(FAQ)
Frage: Sind
irgendwelche GUI Toolkits für Ruby
"thread-safe"?
Antwort: Die Antwort auf
diese Frage hängt sehr von der Definition
des Begriffes "thread-safe" ab. Im
allgemeinen Sinne, nicht aber im Sinne
GUI-Toolkits, haben wir "thread-safe"
betrachtet; das heisst, dass die
Instanzmethode von GUI Objekten keine
geeignete Unterstützung dafür haben. Eine
gute Verfahrensweise für die
multithread-GUI Applikationen ist es, die
GUI in "Haupt-Thread" laufen zu lassen, und
nicht GUI "worker"-Threads für
Hintergrundtasks wann auch immer
möglicherweise zu reservieren.
Frage:
Ruby/GTK und FXRuby kommen mit einigen
guten Programmen herbei, aber Ich kann
nicht bei weitem für Ruby/Tk finden. Gibt's
eine gute Quelle, wo man sich zusätzlich
Ruby/Tk Beispielprogramme besorgen
kann?
Antwort: Schauen Sie in
"Ruby Applikation Archives" nach den
letzten Versionen von "Ruby/Tk Widgets
Demos" Ausgaben nach, die werden von
Jonathan Conway gewartet. Das ist sozusagen
Ruby/Tk Portierung von ursprünglichen
Tcl/Tk Widget Demos und das würde Ihnen
anfangs eine gute Hilfestellung geben, um
ihre Ruby/Tk Applikationen zu entwicklen.
Sie könne ebenso in RAA nach Ruby/Tk
Programmen suchen, und dann sie als den
Lernstoff benutzen.
Frage: Ich
habe mir zuerst FOX und gleich danach
FXRuby installiert, und allem Anschein nach
ist das Kompilieren von Sourcecode ohne
Fehler verlaufen. When ich aber versuche,
irgendeine FXRuby Beispielprogramm unter
Linux laufen zu lassen, reagiert Ruby
darauf mit einer Fehlernachricht, die damit
beginnt: "LoadError(Fehler beim Laden):
libFOX.so: cannot open shared object
file(kann nicht shared Objekt-Datei
öffnen)". Ich habe im FOX
Installationsverzeichnis nachgeschaut und
habe ich mir festgestellt, dass libFOX.so
eingentlich vorhanden ist, also warum
bringt Ruby diesen Fehler heraus?
Antwort: Das Problem hat
damit zu tun, wie das Betriebsystem
gemeinsam benutzte Bibliotheken(shared
libraries) festlegt, von denen Ruby
Erweiterungen wie FXRuby abhängen. Ruby hat
die FXRuby in der Tat gefunden, aber er
kann nicht FOX shared Bibliotheken finden,
die von FXRuby benötigen werden, weil diese
Bibliotheken nicht im Standard-Verzeichnis
für DDL(dynamically-loaded shared
libraries) vorhanden sind. Um dieses
Problem zu beheben, müssen Sie einfach das
Verzeichnis, wo sich shared Bibliotheken
befinden(üblich /usr/local/lib) zu
LD_LIBRARY_PATH Umgebungsvariable
hinzufügen. Sehen Sie dabei in der FXRuby
Installationsanweisung für mehr Information
über dieses Problem nach.