GTK + MenuItem尺寸小

时间:2016-12-10 06:02:16

标签: menuitem font-size gtk3

在运行Windows的计算机上,MenuItems对于我的用例来说太小了。

因此,我的问题是,“我如何增加文本的字体大小”保存“,”加载“和”退出?“

如果没有,那么如何增加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 个答案:

答案 0 :(得分:1)

Gtk3的字体大小控件(和其他样式属性)被委托给CSS文件。通常不鼓励在你的程序中执行此操作(尽管这当然是可能的 - 看看Gtk3的CSS_provider函数)。但通常你希望你的程序看起来与其他程序“兼容”,我怀疑。

原因是您的程序方面应该可以从外部控制 - 无论是出于个人品味还是可访问性的原因。因此,如果您考虑菜单等的字体样式,太小,您可以:

  • 选择其他'主题'或样式,例如。在Gnome-Look site
  • 查看Window管理器对“外观”设置的偏好(在XFCE中调用。在Gnome,KDE等中有类似工具)。
  • 修改您当前使用的主题的CSS文件

许多其他视觉方面都是由CSS文件控制的:元素之间的分离(例如菜单项),角落的圆角,视觉效果等等......但是,由于CSS系统,你通常可以'调整'你喜欢的项目。

编辑:如果你想在另一台机器上运行可执行文件,你可能需要一个窗口管理器来运行它,这使得上面的代码仍然有效。

还有另一个解决方案(我在上面提到,第一段),即使用CSS provider set of Gtk functions临时更改CSS。如果确实想严格编写程序,可以使用GtkWidget的modify_font方法。