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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? faqs.html

?? gtk_text program sample&eg
?? HTML
?? 第 1 頁 / 共 4 頁
字號:
            <a name="Z836">Is there a widget that does            printing?</a>          </h2>          <p>            No. When people ask this question they are usually            looking for an abstract interface that draws either to            the screen or to a printer. There is nothing like that            in GTK+ right now. <tt class="CLASSNAME">            GnomeCanvas</tt> will probably have a feature like this            in a future version.          </p>          <p>            There is a <tt class="APPLICATION">gnome-print</tt>            library available, which handles many unpleasant            low-level details when dealing with fonts and            PostScript. It also comes with a printer-selection            dialog.          </p>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z837">When I <tt class="FUNCTION">fork()</tt>,            I get a bunch of warnings and my program crashes.            What's going on?</a>          </h2>          <p>            There are two things to remember:          </p>          <ol type="1">            <li>              <p>                The child process must not try to use the GUI;                since it shares file descriptors with the parent,                including GTK+'s connection to the X server, GTK+                will become very confused.&#13;              </p>            </li>            <li>              <p>                The child process must be terminated with <tt                class="FUNCTION">_exit()</tt> rather than <tt                class="FUNCTION">exit()</tt>; calling <tt class=                 "FUNCTION">exit()</tt> will shut down GTK+ and                confuse the parent process. (GTK+ registers a                "cleanup" function using <tt class="FUNCTION">                atexit()</tt>.)&#13;              </p>            </li>          </ol>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z838">When do I need to call <tt class=             "FUNCTION">gtk_widget_realize()</tt> vs. <tt class=             "FUNCTION">gtk_widget_show()</tt>?</a>          </h2>          <p>            <a href="z57.html#SEC-REALIZINGSHOWING">the section            called <i>Realizing, Mapping, and Showing</i> in the            chapter called <i>GTK+ Basics</i></a> goes into some            detail on this. But here is a brief summary.          </p>          <p>            Showing a widget implies mapping it eventually (to be            precise, it schedules the widget to be mapped when its            parent widgets are mapped). Mapping a widget means            calling <tt class="FUNCTION">gdk_window_show()</tt> to            display the widget's <span class="STRUCTNAME">            GdkWindow</span> on the screen (if it has a <span            class="STRUCTNAME">GdkWindow</span>, some widgets            don't). To map a widget you must first realize it.            Therefore showing a widget implies realizing it.            Therefore if you show a widget you don't need to            explicitly realize it with <tt class="FUNCTION">            gtk_widget_realize()</tt> because it will be realized            eventually anyway.          </p>          <p>            There's one exception, however. To <i class=            "FIRSTTERM">realize</i> a widget means to allocate X            server resources for it, most notably a <span class=             "STRUCTNAME">GdkWindow</span>. Some things you might            want to do require the <span class="STRUCTNAME">            GdkWindow</span> to exist, so you might want to force a            widget to be realized immediately. <tt class=            "FUNCTION">gtk_widget_realize()</tt> does this. Since            parent widgets must be realized before their children,            <tt class="FUNCTION">gtk_widget_realize()</tt> will            immediately realize all of a widget's parents as well.            One of these parents must be a toplevel window, or            realization will not be possible.          </p>          <p>            If you force-realize a widget, you still have to call            <tt class="FUNCTION">gtk_widget_show()</tt> since            realization does not map the widget.          </p>          <p>            A good but not foolproof rule of thumb: if you are            using <span class="STRUCTNAME">            GTK_WIDGET(widget)-&gt;window</span>, you will need            <span class="STRUCTNAME">widget</span> to be realized.          </p>          <p>            However, it should be noted that force-realizing a            widget is always a mildly bad idea; it is inefficient            and uncomfortably low-level. In many cases you can work            around the need to do so.          </p>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z839">When creating a pixmap, I get the            warning: <tt class="APPLICATION">Creating pixmap from            xpm with NULL window and colormap</tt>. What's            wrong?</a>          </h2>          <p>            Creating a pixmap requires a colormap. <tt class=             "FUNCTION">gdk_pixmap_create_from_xpm_d()</tt> requires            a <span class="STRUCTNAME">GdkWindow</span> argument in            order to extract a colormap. You are probably trying to            use the <span class="STRUCTNAME">window</span> field of            an unrealized widget, which is <span class=            "STRUCTNAME">NULL</span>. You might try the newer            function, <tt class="FUNCTION">            gdk_pixmap_colormap_create_from_xpm_d()</tt> which            accepts a colormap argument; if you pass in a colormap,            its window argument can be <span class="STRUCTNAME">            NULL</span>. However, using Imlib instead is a still            better solution; Imlib's pixmap routines are faster            anyway.          </p>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z840">How can I separate the GUI from the rest            of my application?</a>          </h2>          <p>            For a variety of reasons, an application's graphical            interface tends to be an exceptionally volatile and            ever-changing piece of software. It's the focus of most            user requests for change. It is difficult to plan and            execute well the first time around---often you will            discover that some aspect of it is unpleasant to use            only after you have written it. Making things worse,            graphical interfaces are not portable across machines;            Gnome works on X windows, but if your application is            useful, it won't be long before someone wants to run            your application on another system, or have a            command-line version, or have a web-based interface.            You might even want to have two interfaces in the same            version---perhaps the GUI, and a scripting language            such as Guile.          </p>          <p>            In practical terms, this means that any large            application should have a radical separation between            its various <i class="FIRSTTERM">frontends</i>, or            interfaces, and the <i class="FIRSTTERM">backend</i>.            The backend should contain all the ``hard parts'': your            algorithms and data structures, the real work done by            the application. Think of it as an abstract ``model''            being displayed to and manipulated by the user.          </p>          <p>            Each frontend should be a ``view'' and a            ``controller.'' As a ``view,'' the frontend must note            any changes in the backend, and change the display            accordingly. As a ``controller,'' the frontend must            allow the user to relay requests for change to the            backend (it defines how manipulations of the frontend            translate into changes in the model).          </p>          <p>            There are many ways to discipline yourself to keep your            application separated. A couple of useful ideas:          </p>          <ul>            <li>              <p>                Write the backend as a library; if this becomes                undesirable for any reason, you can always                statically link.&#13;              </p>            </li>            <li>              <p>                Write at least two frontends from the start; one or                both can be ugly prototypes, you just want to get                an idea how to structure the backend. Remember,                frontends should be easy; the backend has the hard                parts.&#13;              </p>            </li>          </ul>          <p>            If one of your frontends is Gnome- or GTK+- based, an            excellent choice for the other is an interactive Guile            terminal. Your non-expert end users probably won't use            it, but it's a great debugging tool; you can prototype            and test the backend using easy-to-write Guile            bindings, and add the graphical controls only when            things are working. When you're done, you'll have a            scriptable application almost for free.          </p>          <p>            If your application can potentially be run in batch            mode, command line and web interfaces are also            relatively easy to write, useful for debugging, and            will keep you disciplined.          </p>          <p>            Finally, if your project is large enough to justify the            bother and complexity, consider using a cross-platform            frontend layer to share code between GUI frontends on            different platforms. This approach is taken by Mozilla            (<a href="http://www.mozilla.org" target=            "_top">http://www.mozilla.org</a>), and the AbiSource            office suite (<a href="http://www.abisource.com"            target="_top">http://www.abisource.com</a>). It might            be interesting to have a look at their code.          </p>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z841">I don't like the default appearance of            [some widget]. How do I change its appearance?</a>          </h2>          <p>            Don't program your preferences. GTK+ unfortunately has            all sorts of look and feel settings that the programmer            can affect. For example, you can change the appearance            of the ``expanders'' in a <tt class="CLASSNAME">            GtkCTree</tt>---they can be triangles, squares, or            circles. By default they are squares. You change them            by calling <tt class="FUNCTION">            gtk_ctree_set_expander_style()</tt>.          </p>          <p>            There's no good reason to call this function in an            application. Ever. Think about why you would call            it---because you happen to like that expander style            better. It's a purely cosmetic issue. However, if you            do call it, you've just made your application's look            and feel different from that of every other            application. This is <i class="EMPHASIS">harmful</i>,            because it confuses users and even gives them a sense            that your application is ``unprofessional'' or ``not            quite right.''          </p>          <p>            ``But I want my favorite expanders!,'' you might whine.            Don't despair. There is a correct way to handle this            situation. Variable aspects of look and feel should be            configurable <i class="EMPHASIS">at runtime</i> by <i            class="EMPHASIS">users</i>. What's more, it should be            configurable <i class="EMPHASIS">globally</i>, for <i            class="EMPHASIS">all applications at once</i>. GTK+            provides themes for precisely this purpose.          </p>          <p>            Unfortunately themes do not yet cover all aspects of            look and feel, and so the temptation remains to            hard-code these in your application. You must resist.            If you are dead-set against the default expander style,            or the default dialog position, or whatever, then do            the work to make it configurable on the library level            and submit that code to the GTK+ or Gnome maintainers.          </p>          <p>            You have to do this on the library level---think about            it. If you provide an application-specific way to            configure look and feel, nothing has really been            gained; if someone does like a particular expander            style, they have to go through each program deciding if            and how the style can be changed. Some programs will            invariably be ``stuck'' with the default, since the            authors of those programs didn't make it configurable.            The resulting mess is very annoying to users.          </p>          <p>            Gnome already has solutions for a number of common            cases. For example, GTK+ lets you pop up a dialog at            the mouse pointer, in the center of the screen, or            wherever the window manager wants; there is no reason            you should pick your favorite and use it in your            application. Thus <tt class="CLASSNAME">            GnomeDialog</tt> loads a user preference for the            dialog's initial position. This preference can be set            from the Gnome control center.          </p>        </div>        <div class="SECT2">          <h2 class="SECT2">            <a name="Z842">Thanks for the lecture, but I have a

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产传媒久久文化传媒| 69av一区二区三区| 日日欢夜夜爽一区| 国产午夜精品久久久久久久| 欧美色涩在线第一页| 国产成人免费网站| 蜜臀精品久久久久久蜜臀 | 国产农村妇女精品| 欧美军同video69gay| 99精品视频在线观看| 老司机午夜精品| 亚洲午夜视频在线| 综合激情成人伊人| 国产日韩亚洲欧美综合| 日韩午夜精品电影| 精品视频在线免费看| 97久久精品人人爽人人爽蜜臀 | 亚洲国产一区二区视频| 国产免费久久精品| 26uuu成人网一区二区三区| 欧美另类videos死尸| 日本韩国欧美一区二区三区| 成人自拍视频在线| 国产一区二区三区综合| 麻豆成人免费电影| 国产成人av电影在线播放| 日韩三级在线观看| 男男视频亚洲欧美| 国产三级欧美三级日产三级99 | 色999日韩国产欧美一区二区| 色妹子一区二区| 亚洲福利电影网| 精品欧美一区二区三区精品久久| 92精品国产成人观看免费| 欧美男生操女生| 国产日韩精品久久久| 日韩午夜在线观看| 日韩免费在线观看| 日韩免费电影一区| 日韩精品一区二区三区四区视频| 日韩一区二区免费高清| 欧美一区二区私人影院日本| 91精品国产综合久久精品| 欧美日韩在线直播| 欧美精品在欧美一区二区少妇| 欧美日韩精品欧美日韩精品一综合 | 亚洲欧洲日韩av| 国产精品久久一卡二卡| 中文av字幕一区| 亚洲日本va在线观看| 亚洲综合成人在线视频| 亚洲高清免费视频| 精品一区二区三区在线视频| 国产伦精品一区二区三区免费迷| 国产精品一区在线| 成人成人成人在线视频| 91国在线观看| 欧美一区二区三区日韩| 久久久综合九色合综国产精品| 欧美经典一区二区三区| 亚洲欧美日韩久久精品| 午夜国产精品一区| 精品一区二区在线视频| 成人黄色777网| 欧美系列一区二区| 日韩欧美国产精品| 中文字幕在线观看不卡| 亚洲一区二区综合| 六月丁香婷婷久久| 高清不卡在线观看av| 欧美综合一区二区三区| 成人精品免费看| 欧美这里有精品| 欧美在线999| 欧美亚日韩国产aⅴ精品中极品| 色婷婷av一区二区三区gif| 国产一二三精品| 国产精品一区二区免费不卡| 国模无码大尺度一区二区三区| 久久国产综合精品| 国产成a人亚洲精品| 91精品国产综合久久久久| 日韩国产欧美在线观看| 国产日韩在线不卡| 亚洲欧美日韩中文播放 | 色嗨嗨av一区二区三区| 日韩亚洲欧美在线| 中文字幕永久在线不卡| 日韩**一区毛片| 91视频在线观看免费| 日韩免费电影网站| 亚洲制服欧美中文字幕中文字幕| 韩国av一区二区| 欧美日韩综合在线免费观看| 国产三级一区二区| 蜜桃视频第一区免费观看| 色综合天天综合色综合av| 日韩美女视频在线| 亚洲午夜在线电影| hitomi一区二区三区精品| 精品欧美一区二区在线观看| 亚洲一区成人在线| 91在线一区二区三区| wwwwxxxxx欧美| 日韩国产欧美在线播放| 91高清视频免费看| 国产精品久久看| 韩国成人精品a∨在线观看| 欧美日韩在线播放| 18成人在线视频| 国产成人av电影在线观看| 日韩欧美一区二区三区在线| 亚洲一区二区三区影院| 成人白浆超碰人人人人| 久久精品日韩一区二区三区| 青青草91视频| 欧美裸体bbwbbwbbw| 亚洲国产精品一区二区久久恐怖片 | 日本女优在线视频一区二区 | 91丨九色丨尤物| 国产情人综合久久777777| 麻豆成人综合网| 日韩精品最新网址| 国产九色精品成人porny| 久久男人中文字幕资源站| www.欧美日韩| 亚洲精品视频在线| 日本精品免费观看高清观看| 亚洲制服丝袜一区| 欧美一区二区视频免费观看| 麻豆精品视频在线| 国产精品久久久久久久午夜片| 国产精品你懂的在线欣赏| 亚洲嫩草精品久久| 日韩一区二区三区电影| 亚洲在线一区二区三区| 在线日韩国产精品| 亚洲一区二区影院| 欧美喷水一区二区| 午夜精品久久久久久久久久| 欧美日韩三级一区二区| 亚洲电影视频在线| 欧美日韩高清不卡| 日韩1区2区3区| 精品国精品自拍自在线| 国产精品资源网站| 亚洲国产精品二十页| 不卡大黄网站免费看| 亚洲欧美日韩国产另类专区| 色av综合在线| 日韩av二区在线播放| 欧美大片顶级少妇| 国产成人av一区二区| 国产精品初高中害羞小美女文| 99精品视频在线免费观看| 亚洲一区二区三区精品在线| 91精品国产91久久综合桃花| 乱一区二区av| 国产精品每日更新| 欧美体内she精视频| 日韩**一区毛片| 久久精品一区二区三区四区| 成人aa视频在线观看| 一区二区三区四区在线免费观看| 欧美三级一区二区| 精品一区二区免费| 国产精品久久午夜| 欧美色倩网站大全免费| 久久国产日韩欧美精品| 中文字幕 久热精品 视频在线| 91久久精品一区二区三区| 日本vs亚洲vs韩国一区三区二区| 久久久久久久久久久久久久久99| 成人av网址在线观看| 午夜精品国产更新| 国产丝袜在线精品| 欧美日韩亚洲综合一区二区三区 | 国产一区二区h| 亚洲天堂网中文字| 制服丝袜国产精品| 粉嫩嫩av羞羞动漫久久久 | 午夜私人影院久久久久| 亚洲午夜免费视频| 日韩中文字幕一区二区三区| 蜜臀99久久精品久久久久久软件| 久久99精品国产.久久久久久 | 久久久午夜电影| 国产精品免费免费| 亚洲在线一区二区三区| 蓝色福利精品导航| 成人免费视频视频在线观看免费| 日韩女优电影在线观看| 91在线一区二区| 视频一区在线播放| 无码av免费一区二区三区试看| 精品电影一区二区| 欧美日韩久久久久久| 成人av电影在线播放| 激情综合网av| 日韩精品成人一区二区在线|