按钮¶
按钮是一种可点击的 UI 元素,通常包含文本或图标。每次点击时,它都会执行一个操作。
文本按钮¶
文本按钮是以 GtkLabel 作为子控件的按钮。默认情况下,文本按钮会被分配 text-button CSS 类。
<object class="GtkButton">
<property name="label">Next</property>
</object>
图像按钮¶
图像按钮是以 GtkImage 作为子控件的按钮。默认情况下,图像按钮会被分配 image-button CSS 类。
<object class="GtkButton">
<property name="icon-name">audio-volume-muted-symbolic</property>
</object>
自定义按钮¶
你可以通过直接设置其子控件来决定按钮的内容,无论是通过编程方式还是在 .ui 文件中。例如,如果你想拥有一个同时包含标签和图像的按钮,你可以将各个小部件打包到一个容器中,并将该容器设置为按钮的子控件
<object class="GtkButton">
<property name="child">
<object class="GtkBox">
<property name="orientation">horizontal</property>
<property name="spacing">12</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-volume-muted-symbolic</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Mute</property>
</object>
</child>
</object>
</property>
</object>
记忆符¶
如果你的按钮包含文本,最好为它们提供一个记忆符(即在按住 Alt 键时可以激活的带下划线的字符)。
要在 .ui 文件中执行此操作,可以使用以下代码
<object class="GtkButton">
<property name="label">Co_ntinue</property>
<property name="use_underline">True</property>
</object>
请注意最后一个属性,use-underline:这是其中的关键。如果没有它,按钮标签会在 o 和 n 之间显示 _。
默认小部件¶
在对话框中,可以标记一个小部件为默认值,这意味着当用户按下 Enter 键时,它将被激活。通常,将按钮标记为默认小部件是合适的。在最简单的情况下,你可以通过调用 gtk_widget_grab_default() 来使按钮成为默认值;你还必须设置 GtkWidget:can-default 属性才能使其生效。
gtk_widget_set_can_default (button, TRUE);
// "window" is the top level window that contains the button
gtk_window_set_default_widget (window, button);
button.props.can_default = True
# "window" is the top level window that contains the button
window.set_default_widget(button)
button.can_default = true;
// "window" is the top level window that contains the button
window.default_widget = button;
button.can_default = true;
// "window" is the top level window that contains the button
window.default_widget = button;
关于默认激活还有一点值得了解,那就是当焦点位于 GtkEntry 中时,按下 Enter 键只会激活默认小部件,如果该条目被标记为“activates-default”。
gtk_entry_set_activates_default (entry, TRUE);
entry.props.activates_default = True
entry.activates_default = true;
entry.activates_default = true;
样式¶
可以为按钮赋予独特的视觉样式,这在某些情况下是合适的。
建议的操作¶
虽然大多数按钮具有中性颜色,但其中一些按钮可以使用不同的样式,以强调在潜在选择集合中建议的操作按钮。在默认主题中,建议的操作颜色为蓝色。
注意
建议的操作通常与默认小部件相关联。虽然默认激活更多的是关于行为,但建议的操作更多的是关于视觉效果。如果你想要前者,你可能也想要后者。有关更多信息,你应该遵循 GNOME 人机界面指南。
要将按钮标记为建议的操作,请添加 suggested-action 样式类。
在 .ui 文件中,如下所示
<object class="GtkButton">
<property name="label">Apply</property>
<style>
<class name="suggested-action"/>
</style>
</object>
破坏性操作¶
执行潜在破坏性操作的按钮可以使用 destructive-action 样式类
在 .ui 文件中,如下所示
<object class="GtkButton">
<property name="label">Delete</property>
<style>
<class name="destructive-action"/>
</style>
</object>
按钮小部件的有用方法¶
set_has_frame()将为按钮提供“扁平”的外观,通过添加flatCSS 类
API 参考¶
在这个示例中,我们使用了以下内容