PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [GTK] Scrollbar an Textfeld binden



guardian
07-08-2003, 12:21
Hallo,

Weiß jemand wie ich eine Scrollbar an ein Textfeld binden kann. Bastle seit einiger Zeit mit der etwas neueren glib2 und gtk2. Bei der alten GTK-Version war's relativ einfach über:


GtkWidget* ScrollBar;
GtkWidget* TextField;

/* ... */

TextField = gtk_text_new( NULL, NULL );
gtk_text_set_editable( GTK_TEXT( TextField ), FALSE );

ScrollBar = gtk_vscrollbar_new( GTK_TEXT( TextField )->vadj );
Allerdings ist bei der neueren Version jetzt das Problem, dass ich die Scrollbar nicht mehr so schön einfach an das Textfeld binden kann. In der Dokumentation bin ich noch nicht wirklich fündig geworden.

Weiß jemand von euch was ?

Danke schon mal im Voraus :)

MfG guardian

Silver
07-08-2003, 12:50
hi!

erstell für solche Sachen am besten ein

gtk_scrolled_window_new(GtkAdjustment *hadjustment, GtkAdjustment *vadjustment);

danach haust du mittels
gtk_scrolled_window_add_with_viewport(GtkScrolledW indow *scrolled_window, GtkWidget *child); das Textfeld (also Child) in das Scrollwindow!

der Struktur GtkScrolledWindow lässt mehrere Einstellungen zu!

mfG

PS: Greife wenn möglich nicht auf die Struktur selber zu, sondern nur über Funktion oder über Éigenschaften (g_object_set())!

guardian
07-08-2003, 12:54
Original geschrieben von Silver
[...]PS: Greife wenn möglich nicht auf die Struktur selber zu, sondern nur über Funktion oder über Éigenschaften (g_object_set())!

Ja O.K. ... werd mich bessern :rolleyes:

Kommt aber daher, dass ich ein Programm von GTK1.2.10 nach GTK2 portieren muss.

Aber Danke für den Hinweis :)

MfG guardian

BTW: das mit der Scrollbar funktioniert zwar einwandfrei, allerdings scrollt der Text nicht mit. Nur die Scrollbar ändert sich, der Text bleibt aber stehen. Muss erst über die Scrollbar nach unten scrollen. Lässt sich das noch irgendwie ändern ?

Silver
07-08-2003, 13:08
wollte jetzt nicht damit deinen programmierstil angreifen nur einen hinweis geben ;)!

aja verwende nicht gtk_text_set_adjustments (falls du mal in die versuchung kommen solltest). die funktion is veraltet!

zur potierung, schau auch hier vorbei: http://developer.gnome.org/dotplan/porting/

mfG

Silver
07-08-2003, 13:15
ups shit ich trottel!
hab bei deinem source was übersehen! GtkText IST VERALTET! Also bitte nicht VERWENDEN!!!!!!! ;)

für einfache eingaben GtkEntry und für richtige Textfelder verwende GtkTextBuffer oder GtkTextView!!!!

also lösche den code mit GtkText raus und ersetze es mit GtkTextBuffer/GtkTextView u. passe Funktionen entsprechend an! Danach funkts!

mfg

guardian
07-08-2003, 13:21
OK werd ich machen. Dank dir noch mal.

BTW: hab es nicht als Angriff auf meinen coding stil gesehen, sondern als konstruktive kritik :) & der link ist auch ganz brauchbar :)

So long ...