暑假看了好几天的c++终于写了个入门的程序呵呵终于也看到了窗口呵呵;虽然就有个窗体和一个lable但还是兴奋了一把。。 贴下代码: #include <gtk/gtk.h> int main (int argc, char *argv[]) { //创建两个控件 GtkWidget *window; GtkWidget *label; //为了应用程序初始化GDK和GTK+库,所有gtk程序都要调用 gtk_init (&argc, &argv); /* 设置窗体为最高等级就是相当于vs下刚新建一工程出现的那个空白窗口 */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* 设置gtk的标题 */ gtk_window_set_title (GTK_WINDOW (window), "Hellogtk"); /* * 这个稍复杂些 * 函数的意义:将一个事件(发出信号)的请求及处理这件事件的方法连接起来. * 参数 第一个是控件的实例像什么按钮阿什么窗口阿都可以。 这里是window窗体, * 第二个是具体的信号类型,如关闭,缩小,放大等。destroy表示的窗体右上角的X(关闭) * 第三个是个函数调用gtk_main_quit,这个函数与下边gtk_main是相对的。 * 第四个是第三个函数的参数,这里是空的; * * 他们组合起来的作用就是当点击关闭按钮时系统会销毁这个进程, * 如果在终端中测试时就可以很清楚的看到当关闭时终端也会自动跳出到命令行模式, * 如果没有此函数,当关闭时终端没有反应,这就说明这个窗体的进程还在继续(也就是gtk_main还在运行)。 */ g_signal_connect (window,"destroy",G_CALLBACK (gtk_main_quit), NULL); /* 创建一个lable写文字*/ label = gtk_label_new ("Hello, World"); /* 并且把lable了放到刚创建window中*/ gtk_container_add (GTK_CONTAINER (window), label); /*使当前所有控件visible属性为true */ gtk_widget_show_all (window); /* 这个好像就是循环,作用就是让这个窗体一直存在,知道用户调用gtk_main_quit */ gtk_main (); return 0; }