изменить размер gtk.Paned - PullRequest
       6

изменить размер gtk.Paned

4 голосов
/ 09 ноября 2009

gtk.Paned содержит свойство стиля, называемое handle-size, которое, как я полагаю, изменит размер дескриптора, он только для чтения, так как мне его изменить? (В PyGtk)

Ответы [ 2 ]

3 голосов
/ 09 ноября 2009

Из документации на gtk.Widget:

gtk.Widget вводит свойства стиля - это в основном свойства объекта, которые хранится не на объекте, а в объекте стиля, связанном с виджетом. Стиль свойства задаются в файлах ресурсов . Этот механизм используется для настройки таких Вещи, как расположение полосы прокрутки стрелки по теме, давая авторам темы больше контроль над внешним видом приложений без необходимости написания движка тем на C.

Общая практика в GTK - не устанавливать свойства стиля из вашей программы, а просто использовать стандартные виджеты пользовательского интерфейса и позволить пользователю решать, как они должны выглядеть (с помощью темы рабочего стола).

2 голосов
/ 10 ноября 2009

Вы можете подать пользовательский файл ресурса перед запуском собственного приложения. В C (надеюсь, перевод на python прост), это будет:

#include <gtk/gtk.h>

int
main(gint argc, gchar **argv)
{
    GtkWidget *window;
    GtkPaned  *paned;

    gtk_init(&argc, &argv);

    gtk_rc_parse_string("style 'my_style' {\n"
                        "    GtkPaned::handle-size = 200\n"
                        " }\n"
                        "widget '*' style 'my_style'");

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    paned = (GtkPaned *) gtk_hpaned_new();
    gtk_paned_add1(paned, gtk_label_new("left"));
    gtk_paned_add2(paned, gtk_label_new("right"));

    gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(paned));

    gtk_widget_show_all(window);
    gtk_main();

    return 0;
}
...