如何清除脱敏 GtkWidget 的焦点 - GtkSpinButton with 属性 sensitive = false
How can I clear the focus from a desensitized GtkWidget - GtkSpinButton with property sensitive = false
背景:我在 GtkNotebook
中设置了几个选项卡,当主选项卡上满足某些条件时,'test signals' 选项卡中的输入字段会相应地被禁用。
当 GtkSpinButton
中的输入在 'test signals' 选项卡上突出显示并且 GtkSpinButton
的 属性 sensitive
设置为 false
,GtkSpinButton
中的文本仍然突出显示。因为有时此选项卡上没有其他可编辑字段,所以文本会一直突出显示,直到另一个小部件将其 属性 sensitive
设置为 true
.
这对我来说看起来很草率,所以我想停止这种行为并让设置为 sensitive
= false
的小部件全部清除焦点或突出显示。知道如何在设置 sensitive
= false
之前取消突出显示 GtkSpinButton
中的文本吗?
要取消选择,您可以使用 gtk_editable_select_region()
函数。这是 GtkEditable 上的一个方法,一个 GtkEntry 和 GtkSpinButton 都满足的接口。您可以使用 GTK_EDITABLE()
将其中任何一个转换为 GtkEditable。例如:
gtk_editable_select_region(GTK_EDITABLE(spinbutton), 0, 0);
背景:我在 GtkNotebook
中设置了几个选项卡,当主选项卡上满足某些条件时,'test signals' 选项卡中的输入字段会相应地被禁用。
当 GtkSpinButton
中的输入在 'test signals' 选项卡上突出显示并且 GtkSpinButton
的 属性 sensitive
设置为 false
,GtkSpinButton
中的文本仍然突出显示。因为有时此选项卡上没有其他可编辑字段,所以文本会一直突出显示,直到另一个小部件将其 属性 sensitive
设置为 true
.
这对我来说看起来很草率,所以我想停止这种行为并让设置为 sensitive
= false
的小部件全部清除焦点或突出显示。知道如何在设置 sensitive
= false
之前取消突出显示 GtkSpinButton
中的文本吗?
要取消选择,您可以使用 gtk_editable_select_region()
函数。这是 GtkEditable 上的一个方法,一个 GtkEntry 和 GtkSpinButton 都满足的接口。您可以使用 GTK_EDITABLE()
将其中任何一个转换为 GtkEditable。例如:
gtk_editable_select_region(GTK_EDITABLE(spinbutton), 0, 0);