GTK+ 菜单项大小小
GTK+ MenuItem Size Small
在机器 运行 Windows 上,菜单项对于我的用例来说太小了。
因此,我的问题是,“如何增加文本 "Save"、"Load" 和 "Exit?" 的字体大小”
如果没有,那么我怎样才能增加菜单项之间的填充?
(不添加 "Load" 和 "Exit" 之间的更多行分隔符)
此外,如果可能的话,我该如何删除中间变量 SubMenu1?
截屏
以下是可重现的完整来源:
#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;
}
Gtk3 的字体大小控制(和其他样式属性)委托给 CSS 文件。通常不鼓励在你的程序中这样做(尽管这当然是可能的——看看 Gtk3 的 CSS_provider 函数)。但通常你希望你的程序看起来 'compatible' 与其他程序一样,我怀疑。
原因是您的程序的方面应该可以从外部控制 - 无论是出于个人品味的原因,还是为了可访问性。所以,如果你认为菜单等的字体样式太小,你可以:
- 选择另一个'theme'或样式,例如。在 Gnome-Look site
- 查看 Window 管理员对 'Appearance' 设置的偏好(在 XFCE 中称为此设置。在 Gnome、KDE 等中有类似的工具)
- 修改您当前使用的主题的CSS个文件
许多其他视觉方面由 CSS 文件控制:元素之间的分隔(例如菜单项)、圆角、视觉效果等...但是,由于 CSS系统,你通常可以'tweak'你喜欢的项目。
编辑: 如果你想 运行 另一台机器上的可执行文件,你可能需要一个 window 管理器来 运行它在下面,这使得上面仍然有效。
还有一个解决方案(我在上面第一段提到过),就是用CSS provider set of Gtk functions临时改变CSS。如果你实在想死板地写程序,你可以使用GtkWidget的modify_font
方法。
在机器 运行 Windows 上,菜单项对于我的用例来说太小了。
因此,我的问题是,“如何增加文本 "Save"、"Load" 和 "Exit?" 的字体大小”
如果没有,那么我怎样才能增加菜单项之间的填充?
(不添加 "Load" 和 "Exit" 之间的更多行分隔符)
此外,如果可能的话,我该如何删除中间变量 SubMenu1?
截屏
以下是可重现的完整来源:
#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;
}
Gtk3 的字体大小控制(和其他样式属性)委托给 CSS 文件。通常不鼓励在你的程序中这样做(尽管这当然是可能的——看看 Gtk3 的 CSS_provider 函数)。但通常你希望你的程序看起来 'compatible' 与其他程序一样,我怀疑。
原因是您的程序的方面应该可以从外部控制 - 无论是出于个人品味的原因,还是为了可访问性。所以,如果你认为菜单等的字体样式太小,你可以:
- 选择另一个'theme'或样式,例如。在 Gnome-Look site
- 查看 Window 管理员对 'Appearance' 设置的偏好(在 XFCE 中称为此设置。在 Gnome、KDE 等中有类似的工具)
- 修改您当前使用的主题的CSS个文件
许多其他视觉方面由 CSS 文件控制:元素之间的分隔(例如菜单项)、圆角、视觉效果等...但是,由于 CSS系统,你通常可以'tweak'你喜欢的项目。
编辑: 如果你想 运行 另一台机器上的可执行文件,你可能需要一个 window 管理器来 运行它在下面,这使得上面仍然有效。
还有一个解决方案(我在上面第一段提到过),就是用CSS provider set of Gtk functions临时改变CSS。如果你实在想死板地写程序,你可以使用GtkWidget的modify_font
方法。