如何修改Windows下GTK2菜单激活项的文本颜色?
Windows平台下GTK2应用菜单白色文本改可读性颜色的方法
你当前的GTK2应用菜单是白色文本,想要调整为更易读的颜色,可通过修改gtkrc配置文件中的样式规则实现,具体操作如下:
方法1:修改全局默认样式
在现有的style "msw-default"块中,添加文本和背景颜色的配置,覆盖默认的白色文本。修改后的配置示例:
style "msw-default" { GtkWidget::interior-focus = 1 GtkOptionMenu::indicator-size = { 9, 5 } GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 } GtkSpinButton::shadow-type = in # 新增菜单文本颜色配置 fg[NORMAL] = "#000000" # 正常状态下的文本颜色(黑色,对比浅色背景更可读) bg[NORMAL] = "#f5f5f5" # 菜单背景色(浅灰色) fg[SELECTED] = "#ffffff" # 选中项的文本颜色(白色) bg[SELECTED] = "#0078d7" # 选中项的背景色(Windows默认高亮蓝) # 原有的其他配置项 GtkComboBox::appears-as-list = 1 GtkComboBox::focus-on-click = 0 GOComboBox::add_tearoffs = 0 GtkTreeView::allow-rules = 0 GtkTreeView::expander-size = 12 GtkExpander::expander-size = 12 GtkScrolledWindow::scrollbar_spacing = 1 GtkSeparatorMenuItem::horizontal-padding = 2 engine "wimp" { } } class "*" style "msw-default"
方法2:单独指定菜单组件样式
如果不想修改全局样式,可单独为菜单相关组件定义样式,避免影响其他控件:
# 新增菜单专属样式 style "msw-menu-style" = "msw-default" { fg[NORMAL] = "#000000" bg[NORMAL] = "#ffffff" fg[ACTIVE] = "#000000" bg[ACTIVE] = "#e0e0e0" fg[SELECTED] = "#ffffff" bg[SELECTED] = "#0078d7" } # 把样式应用到所有菜单和菜单项组件 widget_class "*GtkMenu*" style "msw-menu-style" widget_class "*GtkMenuItem*" style "msw-menu-style" widget_class "*GtkMenuBar*" style "msw-menu-style"
配置说明
*fg[NORMAL]*:控件处于正常状态时的文本颜色*bg[NORMAL]*:控件处于正常状态时的背景颜色*fg[SELECTED]*:控件被选中时的文本颜色*bg[SELECTED]*:控件被选中时的背景颜色- 颜色值支持十六进制格式(如
#000000表示黑色),也可以使用GTK预设的颜色名称(如black、white)
修改完成后,保存gtkrc文件并重启GTK2应用,即可看到菜单文本颜色的变化。
内容的提问来源于stack exchange,提问作者Gp1
相关产品推荐
相关产品推荐

