亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cha-gtk.html

?? GTK+_ Gnome Application Development
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>  <head>    <title>      GTK+ Basics    </title>    <meta name="GENERATOR" content=    "Modular DocBook HTML Stylesheet Version 1.45">    <link rel="HOME" title="GTK+ / Gnome Application Development"    href="ggad.html">    <link rel="UP" title="Overview" href="overview.html">    <link rel="PREVIOUS" title="Other Features" href="z35.html">    <link rel="NEXT" title="Containers And Widget Layout" href=     "sec-containers.html">  </head>  <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink=   "#840084" alink="#0000FF">    <div class="NAVHEADER">      <table width="100%" border="0" bgcolor="#ffffff" cellpadding=       "1" cellspacing="0">        <tr>          <th colspan="4" align="center">            <font color="#000000" size="2">GTK+ / Gnome Application            Development</font>          </th>        </tr>        <tr>          <td width="25%" bgcolor="#ffffff" align="left">            <a href="z35.html"><font color="#0000ff" size="2"><b>            &lt;&lt;&lt; Previous</b></font></a>          </td>          <td width="25%" colspan="2" bgcolor="#ffffff" align=           "center">            <font color="#0000ff" size="2"><b><a href="ggad.html">            <font color="#0000ff" size="2"><b>            Home</b></font></a></b></font>          </td>          <td width="25%" bgcolor="#ffffff" align="right">            <a href="sec-containers.html"><font color="#0000ff"            size="2"><b>Next &gt;&gt;&gt;</b></font></a>          </td>        </tr>      </table>    </div>    <div class="CHAPTER">      <h1>        <a name="CHA-GTK">GTK+ Basics</a>      </h1>      <div class="TOC">        <dl>          <dt>            <b>Table of Contents</b>          </dt>          <dt>            <a href="cha-gtk.html#Z37">Whirlwind Tour of GTK+</a>          </dt>          <dt>            <a href="sec-containers.html">Containers And Widget            Layout</a>          </dt>          <dt>            <a href="z57.html">Widget Concepts</a>          </dt>          <dt>            <a href="sec-mainloop.html">The Main Loop</a>          </dt>        </dl>      </div>      <p>        This chapter does the usual Hello, World to give you an        overview of GTK+, then moves on to discuss some of the        essential details you need to start developing GTK+        applications.      </p>      <p>        If you've already read the GTK+ Tutorial from <a href=         "http://www.gtk.org/" target="_top">        http://www.gtk.org/</a>, or the book <i class="EMPHASIS">        Developing Linux Applications with Gtk+ and Gdk</i> (also        from New Riders), you may be able to skip or just skim this        chapter. If you haven't used GTK+ before, this chapter is        going to be very fast; read with care.      </p>      <div class="SECT1">        <h1 class="SECT1">          <a name="Z37">Whirlwind Tour of GTK+</a>        </h1>        <p>          GTK+'s object-oriented coding style, clean design, and          carefully followed API-naming conventions make programs          simple to write and simple to understand. To make the          point, here's a complete "Hello, World" in GTK+; most          likely you can guess what 80% of the code does with no          GTK+ experience whatsoever.        </p>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z38">A Complete Hello, World</a>          </h2>          <div class="FIGURE">            <a name="Z39"></a>            <p>              <img src="figures/hello.png">            </p>            <p>              <b>Figure 1. Hello, World</b>            </p>          </div>          <table border="0" bgcolor="#E0E0E0" width="100%">            <tr>              <td><pre class="PROGRAMLISTING">&#13;#include &lt;gtk/gtk.h&gt;static gint delete_event_cb(GtkWidget* w, GdkEventAny* e, gpointer data);static void button_click_cb(GtkWidget* w, gpointer data);int main(int argc, char* argv[]){  GtkWidget* window;  GtkWidget* button;  GtkWidget* label;  gtk_init(&amp;argc, &amp;argv);    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  button = gtk_button_new();  label  = gtk_label_new("Hello, World!");  gtk_container_add(GTK_CONTAINER(button), label);  gtk_container_add(GTK_CONTAINER(window), button);  gtk_window_set_title(GTK_WINDOW(window), "Hello");  gtk_container_set_border_width(GTK_CONTAINER(button), 10);    gtk_signal_connect(GTK_OBJECT(window),                     "delete_event",                     GTK_SIGNAL_FUNC(delete_event_cb),                     NULL);  gtk_signal_connect(GTK_OBJECT(button),                     "clicked",                     GTK_SIGNAL_FUNC(button_click_cb),                     label);  gtk_widget_show_all(window);  gtk_main();  return 0;}static gint delete_event_cb(GtkWidget* window, GdkEventAny* e, gpointer data){  gtk_main_quit();  return FALSE;}static void button_click_cb(GtkWidget* w, gpointer data){  GtkWidget* label;  gchar* text;  gchar* tmp;  label = GTK_WIDGET(data);  gtk_label_get(GTK_LABEL(label), &amp;text);  tmp = g_strdup(text);  g_strreverse(tmp);  gtk_label_set_text(GTK_LABEL(label), tmp);  g_free(tmp);}&#13;</pre>              </td>            </tr>          </table>          <div class="SECT3">            <h3 class="SECT3">              <a name="Z40">Compiling Hello, World</a>            </h3>            <p>              GTK+ comes with a shell script called <tt class=               "APPLICATION">gtk-config</tt>; this script is created              when GTK+ is built. Its purpose is to report the              compiler flags you need to compile GTK+ programs. The              following shell session demonstrates its features:            </p>            <table border="0" bgcolor="#E0E0E0" width="100%">              <tr>                <td><pre class="PROGRAMLISTING">&#13;$ gtk-config --version1.2.0$ gtk-config --prefix/home/hp/local$ gtk-config --exec-prefix/home/hp/local$ gtk-config --libs       -L/home/hp/local/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm$ gtk-config --libs gthread-L/home/hp/local/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lgthread -lglib -lpthread -ldl -lXext -lX11 -lm$ gtk-config --cflags -I/usr/X11R6/include -I/home/hp/local/lib/glib/include -I/home/hp/local/include$ &#13;</pre>                </td>              </tr>            </table>            <p>              If you're using a Bourne shell variant, such as <tt              class="APPLICATION">bash</tt>, you can use backticks              (<i class="EMPHASIS">not</i> single quotes!) to              execute <tt class="APPLICATION">gtk-config</tt> and              substitute its output. A simple <tt class="FILENAME">              Makefile</tt> for compiling Hello, World might look              like this:            </p>            <table border="0" bgcolor="#E0E0E0" width="100%">              <tr>                <td><pre class="PROGRAMLISTING">&#13;CC=gccall: hello.c        $(CC) `gtk-config --libs` `gtk-config --cflags` -o hello hello.cclean:        /bin/rm -f *.o *~&#13;</pre>                </td>              </tr>            </table>            <p>              Of course, this <tt class="FILENAME">Makefile</tt> is              far too simple for real-world applications; <a href=               "cha-source.html">the chapter called <i>Creating Your              Source Tree</i></a> describes how to set up a more              realistic build using <tt class="APPLICATION">              automake</tt> and <tt class="APPLICATION">              autoconf</tt>.            </p>            <p>              <tt class="APPLICATION">gtk-config</tt> allows you to              locate GTK+ on the user's system, instead of              hard-coding a location in your <tt class="FILENAME">              Makefile</tt>. It also comes in handy if you have two              versions of GTK+ on your own system; if you install              them each in a dedicated directory tree, you can              choose one or the other by placing the correct <tt              class="APPLICATION">gtk-config</tt> in your shell's              search path.            </p>          </div>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z41">How It Works</a>          </h2>          <p>            This simple program contains all the essential elements            of a GTK+ application. It doesn't contain any Gnome            features; but since Gnome builds on GTK+, the same            concepts will apply.          </p>          <div class="SECT3">            <h3 class="SECT3">              <a name="Z42">Initialization</a>            </h3>            <p>              First, GTK+ must be initialized:            </p>            <table border="0" bgcolor="#E0E0E0" width="100%">              <tr>                <td><pre class="PROGRAMLISTING">&#13;  gtk_init(&amp;argc, &amp;argv);&#13;</pre>                </td>              </tr>            </table>            <p>              This call connects to an X server, and parses some              default arguments understood by all GTK+ programs.              Parsed arguments are removed from <span class=               "STRUCTNAME">argv</span>, and <span class=              "STRUCTNAME">argc</span> is decremented accordingly.              <tt class="FUNCTION">gtk_init()</tt> also registers a              "cleanup function" using <tt class="FUNCTION">              atexit()</tt>. In practice, this is only important              when you <tt class="FUNCTION">fork()</tt>; the child              process must exit with <tt class="FUNCTION">              _exit()</tt> rather than <tt class="FUNCTION">              exit()</tt> to avoid shutting down GTK+ in the              parent.            </p>          </div>          <div class="SECT3">            <h3 class="SECT3">              <a name="Z43">Widgets</a>            </h3>            <p>              Next, any program will have some user interface              elements. In the X tradition, these are called <i              class="FIRSTTERM">widgets</i>. All widgets are              subclasses of the <tt class="CLASSNAME">              GtkWidget</tt> base class, so you can use a <span              class="STRUCTNAME">GtkWidget*</span> to refer to              them. (Since C has no native support for object              inheritance, GTK+ has its own mechanism---<a href=               "cha-objects.html">the chapter called <i>The GTK+              Object and Type System</i></a> describes this.)            </p>            <table border="0" bgcolor="#E0E0E0" width="100%">              <tr>                <td><pre class="PROGRAMLISTING">&#13;  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  button = gtk_button_new();  label  = gtk_label_new("Hello, World!");  gtk_container_add(GTK_CONTAINER(button), label);  gtk_container_add(GTK_CONTAINER(window), button);  gtk_window_set_title(GTK_WINDOW(window), "Hello");  gtk_container_set_border_width(GTK_CONTAINER(button), 10);&#13;</pre>                </td>              </tr>            </table>            <p>              Each widget has a function called <tt class=              "FUNCTION">gtk_widgetname_new()</tt>, analagous to a              constructor in C++ or Java. This function allocates a              new object, initializes it, and returns a pointer to              it. All of the <tt class="FUNCTION">_new()</tt>              routines return a <span class="STRUCTNAME">              GtkWidget*</span>, even though they allocate a              subclass; this is for convenience.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一av色| 国产欧美日本一区视频| 91麻豆国产香蕉久久精品| www.一区二区| 91麻豆精品国产91久久久使用方法| 欧美亚洲综合色| 日韩视频永久免费| 亚洲国产精华液网站w| 玉米视频成人免费看| 麻豆成人av在线| 高清日韩电视剧大全免费| 欧美亚洲禁片免费| 日韩免费视频一区| 亚洲精品久久7777| 韩国精品免费视频| 91在线观看污| 欧美成人a在线| 亚洲欧美怡红院| 九九视频精品免费| 91精品国产欧美一区二区18| 日本一区二区综合亚洲| 青青草国产成人99久久| 欧美日韩免费一区二区三区视频| 国产亚洲精品超碰| 日韩高清在线不卡| 一区二区三区欧美在线观看| 国模冰冰炮一区二区| 欧美亚洲一区二区在线观看| 国产亚洲精品久| 免费xxxx性欧美18vr| 在线亚洲免费视频| 国产精品久久久久久一区二区三区| 亚洲国产精品久久久久婷婷884| 成人av网址在线| 亚洲视频一区二区在线| 成人永久aaa| 国产欧美日韩精品在线| 国产精品香蕉一区二区三区| 欧美tickle裸体挠脚心vk| 青青草原综合久久大伊人精品 | 一区二区中文字幕在线| 国产成人激情av| 亚洲日本一区二区| 91官网在线免费观看| 午夜精品免费在线| 欧美一区二区三区公司| 国产乱理伦片在线观看夜一区| 在线免费观看不卡av| 亚洲免费色视频| 欧美老肥妇做.爰bbww| 久久www免费人成看片高清| 久久超碰97中文字幕| 亚洲特黄一级片| 欧美日韩精品电影| 粉嫩13p一区二区三区| 亚洲裸体xxx| 欧美成人乱码一区二区三区| 成人动漫精品一区二区| 天堂久久一区二区三区| 精品久久久久久久久久久院品网 | 国产日本欧美一区二区| 欧美亚一区二区| 国产午夜久久久久| 在线精品亚洲一区二区不卡| 免费成人美女在线观看| 亚洲综合在线观看视频| 国产亚洲成av人在线观看导航| 欧美日韩卡一卡二| 91免费视频观看| 国产精品一区二区三区乱码 | 欧美日韩高清一区二区三区| 欧美激情在线看| 2017欧美狠狠色| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩日日摸| 欧美一a一片一级一片| 色婷婷精品大在线视频| 91同城在线观看| 97se亚洲国产综合在线| 亚洲日本电影在线| 国产欧美1区2区3区| 中文字幕久久午夜不卡| 国产精品色哟哟网站| 久久久精品欧美丰满| 欧美r级电影在线观看| 日韩女同互慰一区二区| 欧美xxxxx牲另类人与| 国产一区二区三区久久悠悠色av| 日韩专区中文字幕一区二区| 精品一二三四在线| 麻豆91免费看| 粉嫩高潮美女一区二区三区| 91麻豆精东视频| 欧美一区永久视频免费观看| 精品国产乱码久久久久久1区2区| 久久精品视频一区| 99re热视频精品| 欧美三级电影在线观看| 日韩欧美的一区| 中文在线一区二区| 日韩黄色一级片| 国产精品久久夜| 日本不卡123| 不卡视频在线看| 精品少妇一区二区三区日产乱码| 久久精品亚洲乱码伦伦中文| 国产精品538一区二区在线| 欧日韩精品视频| 中文字幕av一区二区三区高| 久久精品二区亚洲w码| 日本一区二区三区在线观看| 亚洲激情一二三区| 国产黄人亚洲片| 色94色欧美sute亚洲线路一久| 日韩精品影音先锋| 五月天一区二区三区| 国产精品国产三级国产普通话99 | 91在线小视频| 国产精品美女视频| 国产麻豆91精品| 久久五月婷婷丁香社区| 日韩和欧美的一区| 欧美高清视频不卡网| 亚洲黄一区二区三区| 色婷婷久久99综合精品jk白丝| 中文字幕一区二区视频| 粉嫩aⅴ一区二区三区四区| 日韩免费观看高清完整版| 日韩高清在线观看| 精品捆绑美女sm三区| 美女视频免费一区| 日韩欧美一区电影| 国产麻豆欧美日韩一区| 国产日韩欧美综合一区| 久久不见久久见中文字幕免费| 免费成人你懂的| 国产欧美精品一区二区三区四区 | 久久午夜色播影院免费高清| 从欧美一区二区三区| 中文字幕中文字幕在线一区| 91网站最新网址| 亚洲二区视频在线| 最新欧美精品一区二区三区| 日本美女一区二区| 日韩三级视频中文字幕| 欧美日韩免费在线视频| 91精品福利视频| 成人av在线资源网| 午夜在线电影亚洲一区| 理论片日本一区| 国产精品77777| 成人免费高清在线| 精品一区免费av| 亚洲女人的天堂| 日本一区二区免费在线| 日韩美女一区二区三区| 午夜电影网一区| 国产精品免费视频网站| 精品国产网站在线观看| 欧美肥胖老妇做爰| 日韩欧美国产三级电影视频| 日韩一区二区免费视频| 精品乱人伦一区二区三区| 日韩一区二区电影网| 91精品国产麻豆国产自产在线| 亚洲视频在线一区| 中文字幕一区二区三区在线不卡| 午夜成人免费视频| 一区二区三区在线免费观看| 椎名由奈av一区二区三区| 1000精品久久久久久久久| 中文字幕欧美国产| 亚洲成在线观看| 国产麻豆精品在线观看| 粉嫩一区二区三区性色av| 免费久久精品视频| 国产乱理伦片在线观看夜一区| 91黄色小视频| 中国av一区二区三区| 精品系列免费在线观看| 91丨九色丨黑人外教| 欧美高清你懂得| 综合电影一区二区三区| 久热成人在线视频| 精品视频一区二区三区免费| 亚洲欧美在线视频| 国产成人精品午夜视频免费| 欧美亚男人的天堂| 国产精品人人做人人爽人人添| 午夜视频在线观看一区二区| 国产成人亚洲综合a∨婷婷| 91精品国产综合久久久蜜臀粉嫩| 国产精品日产欧美久久久久| 国产精品一区二区免费不卡| 99国产精品久久久久| 国产精品免费av| 成人av电影在线观看| 欧美国产日韩亚洲一区| 国精产品一区一区三区mba桃花 | 欧美日韩中文精品|