#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
//初始化
gtk_init(&argc, &argv);//取地址就是为了更改里面的内容
//创建一个窗口
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//gtk控件指针 窗口 gtk 窗口 新建 顶置
gtk_widget_show_all(window);
//主事件循环
gtk_main();
return 0;
}
******************************************************************************************************************************************
在编译的过程中,使用的方式为gcc 01_first_window.c `pkg-config --cflags --libs gtk+-2.0`
使用./a.out进行运行
由于在代码中并没有告诉他,点击小叉叉是退出程序,因此点了×也不能退出程序
信号链接:g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk 信号 连接 谁发出的信号 什么信号 发出了信号做什么事情 你要做事前传递的参数
标题的设置
void gtk_window_set_title(GtkWindow *window, const gchar *title);
gtk 窗口 设置 标题 给哪个窗口设置 设置成什么
在gtk中的控件类型转换
使用函数进行转换 函数名为大写的你的类型 如:GTK_WINDOW(window)
窗口最小大小的设置
void gtk_widget_set_size_request(GtkWidget *widget,gint width,gint height);
gtk 控件 设置 大小 你要给谁设置 宽 高
窗口伸缩设置( FALSE为不可伸缩 )
void gtk_window_set_resizable(GtkWindow *window, gboolean resizable);
gtk 窗口 设置 给谁设置 布尔类型的
显示或隐藏所有控件
void gtk_widget_show_all(GtkWidget *widget);
void gtk_widget_hide_all(GtkWidget *widget);
窗口在显示器位置的设置
void gtk_window_set_position(
GtkWindow *window,
GtkWindowPosition position);
position常用有4种情况:
GTK_WIN_POS_NONE: 不固定
GTK_WIN_POS_CENTER: 居中
GTK_WIN_POS_MOUSE: 出现在鼠标位置
GTK_WIN_POS_CENTER_ALWAYS: 窗口总是居中
******************************************************************************************************************************************
----------------------按钮-----------------------
控件的分类:容器控件,非容器控件。
它可以容纳别的控件。容器控件分为两类,一类只能容纳一个控件,如窗口,按钮;另一类能容纳多个控件,如布局控件。
创建一个带内容的按钮
GtkWidget *gtk_button_new_with_label(const gchar *label );
返回值为控件指针 gtk按钮 新建 带有 文本 你要带有什么内容
把控件添加到窗口容器里
void gtk_container_add(GtkContainer*container,GtkWidget*widget);
container:容纳控件的容器;widget:要添加的控件
获得按钮上面的文本内容
const gchar *gtk_button_get_label(GtkButton *button );
返回值为按钮上的内容 gtk按钮 获得 文本 你要获得哪个按钮上的
***********************************************************************************************************************************************
-----------------------布局-----------------------
创建水平布局容器
GtkWidget*gtk_hbox_new(gboolean homogeneous, gint spacing);
控件 gtk 水平布局 新建 是否均匀排 每个间隔
homogeneous:容器内控件是否均衡排放(大小一致)
spacing: 控件之间的间隔
添加控件到布局容器中
gtk_container_add(GtkContainer*container, GtkWidget *widget );
创建垂直布局容器:
gtk_vbox_new()
标签的创建
GtkWidget *gtk_label_new(const gchar *str);
设置标签的内容
void gtk_label_set_text(GtkLabel *label, const gchar *str);
获得标签的内容
const gchar *gtk_label_get_label(GtkLabel *label );
**************************************************************************************************************************************************************
GTK使用方法:
1.包含头文件
2.GTK环境初始化
3.创建一个新的窗口
4.给窗口进行设置
5.新建一个容器控件
6.将容器控件放入窗口
7.创建一个新的控件
8.将控件放入容器控件中
9.信号连接12
10.显示窗口上的所有控件
11.主事件循环
12.写回调函数
1.全局变量
GtkWidget* label1;
GtkWidget* label2;
int main(int argc, char const *argv[])
{
label1 = gtk_label_new("haha");
haha();
return 0;
}
int haha()
{
char *he = gtk_label_get_label(label1);
}
2.组成结构体,传参为结构体
-------------------常出现的问题-----------------
如果编译的时候显示找不到xxxx,说明你敲错了。
连接库的时候是`不是'
如果说了,有游离就是有中文字符