2016-12-10 17 views
0

На машине под управлением Windows, MenuItems слишком малы для моего использования.
GTK + MenuItem Размер Маленький

Поэтому мой вопрос, «как я могу увеличить размер шрифта текста„Сохранить“,„Load“и„Выход?“»

Если нет, то как я могу увеличить прописку между MenuItems?
(без добавления более из этих линий сепараторов, как видно между «Load» и «Выход»)

Кроме того, как я могу удалить промежуточную переменную SubMenu1, если это возможно?


Обрезанные Скриншот

Cropper Screenshot



Ниже приведен полный источник для воспроизведения:

#include <gtk/gtk.h> 

int main (int argc, char *argv[]) { 
    gtk_init (&argc, &argv); 


    GtkWidget* Window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 

    GtkWidget* MenuBar = gtk_menu_bar_new(); 
    GtkWidget* MenuItem_File = gtk_menu_item_new_with_mnemonic("_File"); 

    GtkWidget* SubMenu1 = gtk_menu_new(); 

    GtkWidget* Item_Save = gtk_menu_item_new_with_mnemonic("_Save"); 
    GtkWidget* Item_Load = gtk_menu_item_new_with_mnemonic("_Load"); 
    GtkWidget* Item_Exit = gtk_menu_item_new_with_mnemonic("_Exit"); 


    gtk_menu_shell_append(GTK_MENU_SHELL(SubMenu1), Item_Save); 
    gtk_menu_shell_append(GTK_MENU_SHELL(SubMenu1), Item_Load); 

    gtk_menu_shell_append(GTK_MENU_SHELL(SubMenu1), gtk_separator_menu_item_new()); 

    gtk_menu_shell_append(GTK_MENU_SHELL(SubMenu1), Item_Exit); 


    gtk_menu_item_set_submenu(GTK_MENU_ITEM(MenuItem_File), SubMenu1); 
    gtk_menu_shell_append(GTK_MENU_SHELL(MenuBar), MenuItem_File); 


    GtkWidget* VerticalBox; 

    VerticalBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); 

    gtk_box_pack_start(GTK_BOX(VerticalBox), MenuBar, false, false, 0); 
    gtk_container_add(GTK_CONTAINER(Window), VerticalBox); 


    gtk_widget_show_all(MenuBar); 
    gtk_widget_show(VerticalBox); 


    gtk_window_set_default_size(GTK_WINDOW(Window), 950, 600); 
    gtk_window_set_position(GTK_WINDOW(Window), GTK_WIN_POS_CENTER); 
    gtk_window_set_title(GTK_WINDOW(Window), "My Title"); 

    gtk_widget_show(Window); 


    gtk_main(); 

    return 0; 
} 

ответ

1

GTK3-х контроль размера шрифта (и другие свойства стиля) делегированы к файлам CSS. Обычно вам не рекомендуется делать это в вашей программе (хотя это, безусловно, возможно - посмотрите на функции CSS_provider Gtk3). Я, как правило, предпочитаю, чтобы ваша программа выглядела «совместимой» с другими программами.

Причина в том, что аспект вашей программы должен контролироваться снаружи - будь то по личному вкусу или для доступности. Итак, если вы считаете, что стиль шрифта для меню и т. Д. Слишком мал, вы можете:

  • Выберите другую тему или стиль, например. на Gnome-Look site
  • Посмотрите на настройках оконного менеджера для для параметра «Внешний вид» (как его называют в XFCE. Есть аналогичные инструменты в Gnome, KDE и т.д.)
  • Измените CSS файлы темы вы в настоящее время используется

Многие другие визуальные аспекты контролируются из файлов CSS: разделение между элементами (например, элементы меню), округление углов, визуальные эффекты и т. д. и т. д., но, благодаря системе CSS, вы можете обычно просто «подбирайте» понравившиеся предметы.

EDIT: Если вы хотите запустить исполняемый файл на другом компьютере, вам, вероятно, понадобится оконный менеджер для его запуска, что делает все это еще актуальным.

Существует еще одно решение (которое я упомянул выше, первый абзац), который должен временно изменить CSS, используя CSS provider set of Gtk functions. Если вы действительно хотите скопировать программу жестко, вы можете использовать метод GtkWidget modify_font.

+0

См. Править оригинальное сообщение, выше – jcoppens