Button 影响GTK中聚焦按钮的样式
我在应用程序中使用了很多按钮(比如拨号板),用户可以选择用鼠标单击任何按钮,或者使用光标箭头键将焦点放在想要的按钮上(然后按Enter键按下按钮)。但不幸的是,按钮的焦点样式不是很明显。按钮框上只有一条细细的红线 因为我有很多按钮,而且我的按钮也相当大(这是一个儿童应用程序),这个“不引人注目”的焦点标记不符合我的口味。我想有一些更明显的,也许细细的红线应该更粗,或者按钮的背景(显示文本或图标)应该改变。任何其他关于如何使这更像是一种眼睛跳跃的想法都将不胜感激 示例代码(在Python中,但使用GTK的其他语言的解决方案也应该这样做,因此我特意不将此问题标记为Python):Button 影响GTK中聚焦按钮的样式,button,user-interface,gtk,focus,Button,User Interface,Gtk,Focus,我在应用程序中使用了很多按钮(比如拨号板),用户可以选择用鼠标单击任何按钮,或者使用光标箭头键将焦点放在想要的按钮上(然后按Enter键按下按钮)。但不幸的是,按钮的焦点样式不是很明显。按钮框上只有一条细细的红线 因为我有很多按钮,而且我的按钮也相当大(这是一个儿童应用程序),这个“不引人注目”的焦点标记不符合我的口味。我想有一些更明显的,也许细细的红线应该更粗,或者按钮的背景(显示文本或图标)应该改变。任何其他关于如何使这更像是一种眼睛跳跃的想法都将不胜感激 示例代码(在Python中,但使用
另外,我想知道我是否需要对每个按钮做任何必要的操作?或者是否存在影响所有光学焦点标记的一般性因素?您可以使用以下方法影响全部或部分应用程序的样式:
你知道我必须在Python(pygtk)中导入什么才能拥有你所指的
Gtk
?我通常只导入gtk
,它既不提供CssProvider
也不提供StyleContext
,也不提供STYLE\u CONTEXT\u PRIORITY\u应用程序。我正在使用
pygtk`2.24.10 btw,以防万一这很重要。啊哈,我没注意到你在使用旧的pygtk
。你可能可以做一些事情,但老实说,我不认为你可以改变焦点矩形在所有GTK 2。任何其他使焦点更明显,也适合我的罚款。我现在有一个骇人的背景变化时,获得和失去重点;它可以工作并以淡绿色突出显示聚焦按钮,但我认为它可以做得更好;然后在按钮的expose事件处理程序中,在按钮上绘制一个额外的指示器。
#!/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()
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)