C语言列举一个gtk3 GtkBox例子
时间: 2023-10-21 08:16:23 浏览: 120
以下是一个简单的 GTK3 程序,其中包含一个水平 GtkBox,其中包含两个按钮:
```c
#include <gtk/gtk.h>
static void button_clicked(GtkWidget *widget, gpointer data)
{
g_print("Button clicked: %s\n", (char*)data);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "GtkBox Example");
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
gtk_widget_set_size_request(window, 300, 200);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
gtk_container_add(GTK_CONTAINER(window), box);
GtkWidget *button1 = gtk_button_new_with_label("Button 1");
g_signal_connect(button1, "clicked", G_CALLBACK(button_clicked), "Button 1");
gtk_box_pack_start(GTK_BOX(box), button1, TRUE, TRUE, 0);
GtkWidget *button2 = gtk_button_new_with_label("Button 2");
g_signal_connect(button2, "clicked", G_CALLBACK(button_clicked), "Button 2");
gtk_box_pack_start(GTK_BOX(box), button2, TRUE, TRUE, 0);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
```
在这个程序中,首先使用 `gtk_init` 函数初始化 GTK3 库。然后创建一个名为 `window` 的顶级窗口,并设置一些基本属性,如标题、边框宽度和大小请求。然后创建一个名为 `box` 的水平 GtkBox,并将其添加到窗口中。接下来创建两个名为 `button1` 和 `button2` 的按钮,并将它们添加到 `box` 中。最后,连接按钮的 `clicked` 信号到 `button_clicked` 回调函数,并连接窗口的 `destroy` 信号到 `gtk_main_quit` 函数。最后显示所有小部件并运行 GTK3 主循环。
阅读全文
相关推荐


















