Hallo, ich habe nun schon ne Weile im Netz gesucht, aber irgendwie ist das alles nicht eindeutig. Es sieht so aus, als würde eis keine "echte" Funktion geben, um die Schriftgröße in einem Textfenster zu ändern. Wie realisiere ich das mit dem GTK? Gibt es da keine Funktion für? Oder wird das über GDK bzw. Pango erledigt? Grüße KidMoritz
Es scheint ein wenig umständlich zu sein. Scheinbar sollte es über die Textattribute funktionieren: http://library.gnome.org/devel/gtk/unstable/GtkTextTag.html und dann dort die Eigenschaft verändern: http://library.gnome.org/devel/gtk/unstable/GtkTextTag.html#GtkTextTag--scale
ODER, sollte es dies sein...???? -- #include <gtk/gtk.h> // Nicht so schön... GtkWidget *text_view; void on_window_destroy (GtkWidget *widget, gpointer data) { gtk_main_quit (); } /* Callback for close button */ void on_button_clicked (GtkWidget *button, GtkTextBuffer *buffer) { static int flag=0; PangoFontDescription *font_desc; if (flag==0) { font_desc = pango_font_description_from_string ("mono 30"); flag=1; } else { font_desc = pango_font_description_from_string ("mono 10"); flag=0; } gtk_widget_modify_font (text_view, font_desc); pango_font_description_free (font_desc); } int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox; GtkWidget *button; GtkTextBuffer *buffer; gtk_init (&argc, &argv); /* Create a Window. */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Simple Multiline Text Input"); /* Set a decent default size for the window. */ gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (on_window_destroy), NULL); vbox = gtk_vbox_new (FALSE, 2); gtk_container_add (GTK_CONTAINER (window), vbox); /* Create a multiline text widget. */ text_view = gtk_text_view_new (); gtk_box_pack_start (GTK_BOX (vbox), text_view, 1, 1, 0); /* Obtaining the buffer associated with the widget. */ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); /* Set the default buffer text. */ gtk_text_buffer_set_text (buffer, "Hello Text View!", -1); /* Create a close button. */ button = gtk_button_new_with_label ("Change"); gtk_box_pack_start (GTK_BOX (vbox), button, 0, 0, 0); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_button_clicked), buffer); gtk_widget_show_all (window); gtk_main (); return 0; }
Am schoensten ist es mit .rc Files, dann kann man solche Attribute naemlich auch ohne neukompilieren aendern. http://www.gtk.org/tutorial1.2/gtk_tut-21.html kurze Zusammenfassung: - bla.rc File mit zB sowas wie style "test" { font_name = "DejaVuSans 36" } - im Programm sowas wie gtk_rc_parse("bla.rc"); gtk_widget_set_name(GTK_WIDGET(blubb), "test"); Damit lassen sich auch noch Hintergrundbilder, Farben etc aendern.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.