在Linux下用纯C语言编写用户界面(UI),通常会使用GTK或Xlib。GTK是一个更高级的库,提供了丰富的控件和功能,而Xlib则是一个更底层的库,提供了直接操作X Window系统的功能。
下面是一个使用GTK在Linux上创建一个简单窗口的示例代码:
### 使用GTK创建简单窗口
首先,需要确保系统中安装了GTK开发库。可以通过以下命令安装:
sudo apt-get install libgtk-3-dev
接下来,编写使用GTK创建简单窗口的C代码。
#include <gtk/gtk.h>
// 当窗口关闭时调用
static void on_window_destroy(GtkWidget *widget, gpointer data) {
gtk_main_quit();
}
int main(int argc, char *argv[]) {
GtkWidget *window;
// 初始化GTK
gtk_init(&argc, &argv);
// 创建一个新窗口
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "GTK Window");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 200);
// 连接关闭信号
g_signal_connect(window, "destroy", G_CALLBACK(on_window_destroy), NULL);
// 显示窗口
gtk_widget_show_all(window);
// 进入GTK主循环
gtk_main();
return 0;
}
### 编译和运行
保存代码到文件(如 `main.c`),然后使用以下命令编译和运行:
gcc `pkg-config --cflags gtk+-3.0` -o main main.c `pkg-config --libs gtk+-3.0`
./main
### 代码说明
1. **包含头文件**: `gtk/gtk.h` 包含所有GTK函数和数据结构的定义。
2. **回调函数**: `on_window_destroy` 在窗口关闭时调用,退出GTK主循环。
3. **主函数**:
- 调用 `gtk_init` 初始化GTK。
- 创建一个窗口,并设置窗口的标题和默认大小。
- 使用 `g_signal_connect` 连接窗口关闭信号到回调函数。
- 显示窗口,并进入GTK主循环。
这个示例代码展示了如何使用GTK在Linux上创建一个简单的窗口。GTK提供了丰富的控件和功能,适合开发复杂的GUI应用。如果需要更底层的控制或不希望使用GTK,也可以使用Xlib来直接操作X Window系统,但这需要更多的代码和更复杂的处理。