按钮的类型:
- 普通按钮
- 开关按钮(是单选、复选的抽象原型)
- 复选按钮
- 单选按钮(涉及组的概念,单独出来)
按钮的创建:
// 普通按钮
GtkWidget *gtk_button_new();
GtkWidget *gtk_button_new_with_label(const gcahr *label);
GtkWidget *gtk_button_new_with_mnemonic(const gchar *label);
// 开关按钮 Toggle Buttons
GtkWidget *gtk_toggle_button_new( void );
GtkWidget *gtk_toggle_button_new_with_label( const gchar *label );
GtkWidget *gtk_toggle_button_new_with_mnemonic( const gchar *label );
// 复选框
GtkWidget *gtk_check_button_new( void );
GtkWidget *gtk_check_button_new_with_label ( const gchar *label );
GtkWidget *gtk_check_button_new_with_mnemonic ( const gchar *label );
按钮的属性:
// 注意,当你使用 gtk_toggle_button_set_active() 函数,
// 并且状态也实际改变了时,它会导致按钮发出 "clicked" 和 "toggled" 信号。
void gtk_toggle_button_set_active ( GtkToggleButton *toggle_button, gboolean is_active );
gboolean gtk_toggle_button_get_active ( GtkToggleButton *toggle_button);
GSList *gtk_radio_button_get_group( GtkRadioButton *radio_button );
void gtk_toggle_button_set_active( GtkToggleButton *toggle_button, gboolean state );
按钮的事件:
void toggle_button_callback (GtkWidget *widget, gpointer data)
{
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
{
/* 如果运行到这里,开关按钮是按下的 */
} else {
/* 如果运行到这里,开关按钮是弹起的 */
}
}
带图片、文件的按钮
/* 创建一个新的横向盒,它包含一个图像和一个标签,并返回这个盒。*/
GtkWidget *xpm_label_box( gchar *xpm_filename,
gchar *label_text )
{
GtkWidget *box;
GtkWidget *label;
GtkWidget *image;
/* 为图像和标签创建盒 */
box = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (box), 2);
/* 创建一个图像 */
image = gtk_image_new_from_file (xpm_filename);
/* 为按钮创建一个标签 */
label = gtk_label_new (label_text);
/* 把图像和标签组装到盒子里 */
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 3);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 3);
gtk_widget_show (image);
gtk_widget_show (label);
return box;
}
分享到:
相关推荐
GTK_BUTTONS_OK, (gchar *)user_data); gtk_dialog_run(GTK_DIALOG(dialog)); // 显示对话框 gtk_widget_destroy(dialog); // 销毁对话框 } ``` - `on_button_clicked`: 定义了按钮点击事件的处理函数。 - `gtk...
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello, World!"); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); } int main(int argc, ...
gtk_window_set_title(GTK_WINDOW(win), "Big Buttons with Image"); gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER); gtk_widget_set_usize(win, 400, 200); g_signal_connect(win, "destroy", G_...
GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "这是第一条提示信息"); ``` 为了显示多条提示信息,并允许用户通过按钮控制前后切换,我们需要维护一个...
3. **按钮(Buttons)**:每个数字键、运算符键以及清除键等都是一个按钮(GtkButton)。通过绑定事件处理函数,可以实现点击按钮时执行相应的计算操作。 4. **显示区域(Entry)**:计算器的显示屏通常是一个单行...
- **选项对话框**:使用`gtk_dialog_add_buttons()`函数添加按钮到对话框中,以便用户进行选择。 ##### 3.4 综合实现 将上述各个组件组合起来,形成一个完整的计算器程序。 - **界面设计**:设计一个包含数字键、...
一般按钮 Normal Buttons 开关按钮 Toggle Buttons 复选按钮 Check Buttons 单选按钮 Radio Buttons 调整对象 Adjustments 创建一个调整对象 轻松使用调整对象 “调整对象”的内部机制 范围构件 ...
一般按钮 Normal Buttons 开关按钮 Toggle Buttons 复选按钮 Check Buttons 单选按钮 Radio Buttons 调整对象 Adjustments 创建一个调整对象 轻松使用调整对象 “调整对象”的内部机制 范围构件 Range ...
- **按钮构件**: 包括普通按钮(Normal Buttons)、开关按钮(Toggle Buttons)、复选按钮(Check Buttons)、单选按钮(Radio Buttons)等。 - **调整对象**: 用于控制值的变化范围。 - **范围构件(Range Widgets)**: 如...
- **BUTTONS实验**: 展示了各种按钮控件及其使用方法。 - **BUTTONBOX实验**: 讨论了如何使用ButtonBox容器来管理按钮布局。 - **ARROW实验**: 介绍了箭头控件的使用方法。 - **RADIOUSBUTTONS实验**: 介绍了如何...
GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "这是一个对话框"); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return 0; }...
- **开关按钮(Toggle Buttons)**: 理解 Toggle Buttons 如何表示开/关状态。 - **复选按钮(Check Buttons)**: 探讨 Check Buttons 如何实现多选功能。 - **单选按钮(Radio Buttons)**: 学习 Radio Buttons 如何实现...
- **buttons.c**:展示了`GtkButton`的基本用法,它是GUI中最常见的交互元素,用于触发一个动作。 - **filesel.c**:文件选择对话框,使用`GtkFileChooser`控件让用户浏览和选择本地文件或目录。 3. **GTK编程...
除了基本的按钮,Gtkmm还支持多种类型的按钮,如复选框按钮(`Gtk::CheckButton`)、单选按钮(`Gtk::RadioButton`)和图像按钮(`Gtk::ImageButton`)。它们的用法大同小异,主要的区别在于显示和行为。 对于更...
$dialog = new GtkMessageDialog($wnd, Gtk::DIALOG_MODAL, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, $errors); $dialog->set_markup("发生以下错误:\r\n$errors</span>"); $dialog->run(); $dialog->destroy(); ...
- **微调按钮(Spin Buttons)**:用于数值输入的小型控件。 - **组合框(ComboBox)**:提供列表选项选择的控件。 - **日历(Calendar)**:用于选择日期的日历控件。 - **颜色选择(Color Selection)**:用于选择...
- **单选按钮 (Radio Buttons)**:一组单选按钮只能有一个被选中,常用于选择唯一选项。 ##### 调整对象 (Adjustments) 调整对象是用来控制滑动条、比例条等范围构件的位置和值的重要组件。 - **创建一个调整对象...
"This demonstrates how to add radio buttons to your menus"这个主题聚焦于如何在菜单中集成单选按钮(Radio Buttons),这是一个常见的图形用户界面(GUI)控件,用于让用户在一组互斥选项中进行选择。...