为什么在加载我的gtk应用程序时自动选择第一个工具栏按钮?
当我的gtk应用程序加载时,工具栏上的第一个项目会自动选中,它会高亮显示,当它按enter键时会被按下。这只是一个小问题,但我希望默认情况下不选择任何内容 以下是一些基本示例代码:为什么在加载我的gtk应用程序时自动选择第一个工具栏按钮?,gtk,pygtk,glade,Gtk,Pygtk,Glade,当我的gtk应用程序加载时,工具栏上的第一个项目会自动选中,它会高亮显示,当它按enter键时会被按下。这只是一个小问题,但我希望默认情况下不选择任何内容 以下是一些基本示例代码: import gtk import gtk.glade window_tree = gtk.glade.XML('testtoolbar.glade') gtk.main() 林间空地 <?xml version="1.0"?> <glade-interface> <!-- i
import gtk
import gtk.glade
window_tree = gtk.glade.XML('testtoolbar.glade')
gtk.main()
林间空地
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy project-wide -->
<widget class="GtkWindow" id="window1">
<property name="width_request">200</property>
<property name="visible">True</property>
<child>
<widget class="GtkToolbar" id="toolbar1">
<property name="visible">True</property>
<child>
<widget class="GtkToolButton" id="toolbutton1">
<property name="visible">True</property>
<property name="label" translatable="yes">toolbutton1</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-new</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<widget class="GtkToolButton" id="toolbutton2">
<property name="visible">True</property>
<property name="label" translatable="yes">toolbutton2</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-open</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>
这可能只是GTK+将焦点交给某个小部件,如果可能的话,它喜欢让小部件聚焦
您可以使用将焦点移动到其他位置,以获得所需的行为。如果工具栏是您所有的widgetry,那么可能很难找到合适的焦点目标。这可能只是GTK+将焦点交给某个小部件,如果可能的话,它喜欢让小部件聚焦
您可以使用将焦点移动到其他位置,以获得所需的行为。如果工具栏是您所有的widgetry,那么可能很难找到合适的焦点目标。您始终可以添加一个小部件,使其不可见,并将焦点转移到它。虽然我并不认为这是一个问题,也不知道还有谁会这样做。你可以添加一个小部件,使其不可见,并将焦点转移到它上。虽然我并不认为这是一个问题,也不知道还有谁会这样做。它有焦点,因为它是你应用程序中的第一个小部件。如果您使用glade,您可以将任何其他小部件的Has focus设置为“Yes”,工具栏将在启动时自动失去焦点。它有焦点,因为它是应用程序中的第一个小部件。如果您使用glade,您可以将任何其他小部件的Has focus设置为“Yes”,工具栏将在启动时自动失去焦点。gtk.ToolButton继承gtk.Bin Bin是一个抽象基类,它定义了一个小部件,这个小部件是一个只有一个子元素的容器 所以button是一个容器 btn.set\u can\u focusFalse 这是行不通的。 你需要 btn.set\u focus\u chain[] 或者对于工具栏中的每个按钮 toolbar.foreachlambda x:x.set\u focus\u chain[]
gtk.ToolButton继承gtk.Bin Bin是一个抽象基类,它定义了一个小部件,这个小部件是一个只有一个子元素的容器 所以button是一个容器 btn.set\u can\u focusFalse 这是行不通的。 你需要 btn.set\u focus\u chain[] 或者对于工具栏中的每个按钮 toolbar.foreachlambda x:x.set\u focus\u chain[]