2016-12-10 24 views
0

在運行Windows的機器上,MenuItem對於我的用例來說太小了。
GTK + MenuItem Size小

因此,我的問題是,「我怎麼可能會增加文本的字體大小‘保存’,‘加載’和‘退出?’

如果沒有,那麼我怎麼能增加MenuItems之間的填充?
(不作爲「裝載」和「退出」之間看到添加更多的那些線分離器)

此外,我怎樣可以去除中間變量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文件。通常不鼓勵在你的程序中這樣做(儘管這當然是可能的 - 查看Gtk3的CSS_provider函數)。但通常你會希望你的程序看起來與其他程序「兼容」,我懷疑。

原因是您的程序的方面應該可以從外部控制 - 無論是出於個人愛好還是可訪問性。因此,如果考慮菜單等字體樣式太小,您可以:

  • 選擇另一個'主題'或樣式,例如。在Gnome-Look site
  • 看窗口管理器的喜好的「外觀」設置(因爲它是所謂的XFCE。還有在GNOME,KDE等類似的工具)
  • 修改你的主題CSS文件目前使用

許多其他視覺方面從CSS文件控制:元素(如的菜單項),磨圓棱角,視覺效果,等等等等......但是,由於CSS系統之間的分離,可以通常只是「調整」你喜歡的物品。

編輯:如果你想運行在另一臺機器上的可執行文件,你可能需要一個窗口管理器來運行它,這使得上述仍然有效。

還有另一種解決方案(我在上面提到,第一段),它是使用CSS provider set of Gtk functions臨時更改CSS。如果你真的想嚴格編程,可以使用GtkWidget的modify_font方法。

+0

請參閱編輯原始帖子,上面 – jcoppens