影响GTK中聚焦按钮的样式



我在应用程序中使用了很多按钮(如拨号盘),用户可以选择用鼠标单击任何按钮,也可以使用光标箭头键将焦点放在所需按钮上(然后按Enter按钮)。但不幸的是,按钮的焦点样式不是很明显。这只是一条薄薄的红线,按钮是用它框起来的。

由于我有很多按钮,而且我的按钮也相当大(这是一个儿童应用程序),所以这种"不显眼"的焦点标记不符合我的口味。我想要一些更明显的东西,也许细红线应该更粗,或者按钮的背景(显示文本或图标)应该改变。任何其他关于如何让这更像是一种跳跃式的想法都将不胜感激。

示例代码(在Python中,但使用GTK的其他语言的解决方案也应该如此,所以我故意不要将这个问题标记为Python):

#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
def init():
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
table = gtk.Table(2, 1)
button1 = gtk.Button("Hello")
button2 = gtk.Button("World")
table.attach(button1, 0, 1, 0, 1)
table.attach(button2, 1, 2, 0, 1)
window.add(table)
button1.show()
button2.show()
table.show()
window.show()
if __name__ == "__main__":
init()
gtk.main()

我也想知道我是否需要对每个按钮做任何必要的事情?或者是否存在影响所有光学焦点标记的一般因素?

您可以使用Gtk.CssProvider:影响应用程序的全部或部分样式

provider = Gtk.CssProvider()
provider.load_from_data('''
GtkButton {
-GtkWidget-focus-line-width: 3px;
}
''')
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider,
Gtk.STYLE_CONTEXT_PRIORITY_APPLICATION)

最新更新