亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
在线综合视频播放| 欧美大片顶级少妇| 狠狠色伊人亚洲综合成人| 国产精品欧美综合在线| 欧美一区二区精美| 色婷婷亚洲婷婷| 国产精品自在欧美一区| www.欧美.com| 久久国产综合精品| 亚洲福利一区二区三区| 国产精品麻豆久久久| 久久综合色婷婷| 欧美一区二区三区不卡| 欧美亚洲动漫另类| 成人免费看的视频| 国产麻豆精品在线| 六月婷婷色综合| 日韩精品欧美精品| 亚洲自拍偷拍综合| 亚洲欧美日韩在线不卡| 国产婷婷色一区二区三区在线| 欧美一级欧美三级在线观看| 欧美午夜精品一区二区蜜桃| 91蜜桃视频在线| 成人自拍视频在线观看| 国产精品99久久久久久久女警| 日韩高清在线不卡| 日本欧洲一区二区| 免费国产亚洲视频| 日韩电影一二三区| 日本不卡一区二区三区| 亚洲国产va精品久久久不卡综合| 亚洲日本电影在线| 亚洲欧美日韩一区二区三区在线观看| 中国av一区二区三区| 亚洲国产精品精华液2区45| 久久久www成人免费毛片麻豆 | 91啪九色porn原创视频在线观看| 高清成人在线观看| 成人午夜激情在线| 99久久精品国产毛片| 91丨九色丨蝌蚪富婆spa| 国产偷国产偷精品高清尤物| 26uuu久久综合| 国产婷婷精品av在线| 欧美经典一区二区| 国产精品黄色在线观看| 亚洲三级电影网站| 亚洲综合成人网| 日韩和欧美的一区| 精品无人码麻豆乱码1区2区| 国产久卡久卡久卡久卡视频精品| 国产一区视频网站| eeuss鲁一区二区三区| 91小视频免费看| 欧美日韩久久久久久| 欧美成va人片在线观看| 国产亚洲精品aa午夜观看| 国产日产欧美一区| 一区二区三区国产精品| 亚洲动漫第一页| 免费成人在线网站| 成人午夜激情片| 欧美性大战久久久久久久| 欧美丰满一区二区免费视频| 精品久久久久久最新网址| 久久久国产精品不卡| 亚洲欧美综合另类在线卡通| 午夜欧美在线一二页| 韩国三级电影一区二区| a级高清视频欧美日韩| 在线成人高清不卡| 欧美极品美女视频| 亚洲国产日韩a在线播放性色| 麻豆成人免费电影| 9色porny自拍视频一区二区| 欧美日韩激情一区二区| 久久免费的精品国产v∧| 亚洲精品中文字幕乱码三区| 蜜桃视频第一区免费观看| jlzzjlzz欧美大全| 欧美一级日韩不卡播放免费| 中文字幕在线不卡视频| 热久久国产精品| 99久久伊人网影院| 日韩精品专区在线影院重磅| 日韩美女久久久| 久久99这里只有精品| 色婷婷综合久久久中文字幕| 久久这里都是精品| 午夜伦欧美伦电影理论片| 国产成人av影院| 51久久夜色精品国产麻豆| 中文欧美字幕免费| 美女免费视频一区二区| 色av成人天堂桃色av| 久久九九久久九九| 日本免费新一区视频| 91久久奴性调教| 欧美激情一区二区在线| 看电视剧不卡顿的网站| 欧美性生活久久| 国产精品另类一区| 国产在线精品一区二区| 欧美丰满嫩嫩电影| 一区二区免费视频| 不卡一区在线观看| 欧美国产乱子伦| 久久成人综合网| 国产精品灌醉下药二区| 国产综合一区二区| 欧美久久一区二区| 亚洲精品v日韩精品| 成人在线综合网| 久久免费看少妇高潮| 久久aⅴ国产欧美74aaa| 欧美夫妻性生活| 午夜欧美大尺度福利影院在线看| 日本电影欧美片| 一区二区三区中文在线| 本田岬高潮一区二区三区| 久久婷婷综合激情| 精品午夜一区二区三区在线观看| 日韩一区二区三区四区| 天天做天天摸天天爽国产一区| 色综合天天综合| 亚洲精品免费视频| 一本久久a久久免费精品不卡| 中文字幕亚洲精品在线观看| 99久久er热在这里只有精品66| 欧美高清一级片在线观看| 国产91精品露脸国语对白| 久久亚洲精品国产精品紫薇| 精品午夜一区二区三区在线观看| 日韩精品一区二| 国产曰批免费观看久久久| 久久久精品综合| 国产激情一区二区三区四区| 久久久精品天堂| 成人h动漫精品| 亚洲欧美色综合| 欧美写真视频网站| 午夜天堂影视香蕉久久| 91.xcao| 免费看日韩精品| 精品国产乱码久久久久久影片| 韩国三级在线一区| 中文字幕第一区二区| 99视频在线观看一区三区| 夜夜操天天操亚洲| 欧美一区二区在线看| 韩国v欧美v亚洲v日本v| 国产人妖乱国产精品人妖| 99精品黄色片免费大全| 亚洲另类一区二区| 欧美一区在线视频| 国内久久精品视频| 国产精品伦理一区二区| 色哟哟国产精品| 日本少妇一区二区| 中文字幕第一区二区| 色诱亚洲精品久久久久久| 日韩精品欧美精品| 久久久777精品电影网影网| 一本一道久久a久久精品 | 亚洲六月丁香色婷婷综合久久| 欧美亚洲国产怡红院影院| 美女视频黄频大全不卡视频在线播放| 久久日韩粉嫩一区二区三区| 成人开心网精品视频| 亚洲已满18点击进入久久| 精品久久国产老人久久综合| 91视频com| 美女www一区二区| 亚洲三级小视频| 日韩一区二区精品在线观看| 成人黄色一级视频| 肉丝袜脚交视频一区二区| 欧美极品另类videosde| 欧美嫩在线观看| 成人av网站免费观看| 日韩电影免费在线观看网站| 国产精品国产三级国产普通话三级 | 久久99九九99精品| 亚洲免费观看高清完整版在线观看 | 亚洲九九爱视频| 久久午夜国产精品| 欧美午夜精品理论片a级按摩| 国产一区二区不卡| 日韩专区在线视频| 亚洲天堂免费在线观看视频| 欧美一区二区三区精品| 91丨九色丨黑人外教| 久久 天天综合| 亚洲电影一级黄| 中文字幕中文字幕一区二区| 精品国产乱码久久久久久浪潮| 欧美专区在线观看一区| yourporn久久国产精品| 黑人巨大精品欧美黑白配亚洲|