⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtkdrawingarea.html

📁 最新gtk中文资料集
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<p></p><p>The following code portion demonstrates using a drawingarea to display a circle in the normal widget foreground color.Note that GDK automatically clears the exposed areato the background color before sending the expose event, and that drawing is implicitly clipped to the exposed area.</p><div class="example"><a name="id4218805"></a><p class="title"><b>Example&#160;43.&#160;Simple <span class="structname">GtkDrawingArea</span> usage.</b></p><div class="example-contents"><pre class="programlisting">gbooleanexpose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data){  gdk_draw_arc (widget-&gt;window,                widget-&gt;style-&gt;fg_gc[GTK_WIDGET_STATE (widget)],                TRUE,                0, 0, widget-&gt;allocation.width, widget-&gt;allocation.height,                0, 64 * 360);   return TRUE;}[...]  GtkWidget *drawing_area = gtk_drawing_area_new ();  gtk_widget_set_size_request (drawing_area, 100, 100);  g_signal_connect (G_OBJECT (drawing_area), "expose_event",                      G_CALLBACK (expose_event_callback), NULL);</pre></div></div><br class="example-break"><p>Expose events are normally delivered when a drawing area first comesonscreen, or when it's covered by another window and then uncovered(exposed). You can also force an expose event by adding to the "damageregion" of the drawing area's window; <a class="link" href="GtkWidget.html#gtk-widget-queue-draw-area"><code class="function">gtk_widget_queue_draw_area()</code></a> and<ahref="/usr/share/gtk-doc/html/gdk/gdk-Windows.html#gdk-window-invalidate-rect"><code class="function">gdk_window_invalidate_rect()</code></a> are equally good ways to do this. You'llthen get an expose event for the invalid region.</p><p>The available routines for drawing are documented on the <ahref="/usr/share/gtk-doc/html/gdk/gdk-Drawing-Primitives.html">GDK Drawing Primitives</a> page.See also <ahref="/usr/share/gtk-doc/html/gdk/gdk-Drawing-Primitives.html#gdk-draw-pixbuf"><code class="function">gdk_draw_pixbuf()</code></a> for drawing a <ahref="/usr/share/gtk-doc/html/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>.</p><p>To receive mouse events on a drawing area, you will need to enablethem with <a class="link" href="GtkWidget.html#gtk-widget-add-events"><code class="function">gtk_widget_add_events()</code></a>. To receive keyboard events, youwill need to set the <a class="link" href="GtkWidget.html#GTK-CAN-FOCUS:CAPS"><span class="type">GTK_CAN_FOCUS</span></a> flag on the drawing area, andshould probably draw some user-visible indication that the drawingarea is focused. Use the <a class="link" href="GtkWidget.html#GTK-HAS-FOCUS:CAPS"><code class="function">GTK_HAS_FOCUS()</code></a> macro in your expose eventhandler to decide whether to draw the focus indicator. See<a class="link" href="GtkStyle.html#gtk-paint-focus"><code class="function">gtk_paint_focus()</code></a> for one way to draw focus.</p></div><div class="refsect1" lang="en"><a name="id4218953"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id4218963"></a><h3><a name="GtkDrawingArea-struct"></a>GtkDrawingArea</h3><a class="indexterm" name="id4218977"></a><pre class="programlisting">typedef struct _GtkDrawingArea GtkDrawingArea;</pre><p>The <a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea"><span class="type">GtkDrawingArea</span></a> struct contains private data only, andshould be accessed using the functions below.</p></div><hr><div class="refsect2" lang="en"><a name="id4219002"></a><h3><a name="gtk-drawing-area-new"></a>gtk_drawing_area_new ()</h3><a class="indexterm" name="id4219015"></a><pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget">GtkWidget</a>*          gtk_drawing_area_new                (void);</pre><p>Creates a new drawing area.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></p></td><td>a new <a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea"><span class="type">GtkDrawingArea</span></a></td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id4219060"></a><h3><a name="gtk-drawing-area-size"></a>gtk_drawing_area_size ()</h3><a class="indexterm" name="id4219076"></a><pre class="programlisting">void                gtk_drawing_area_size               (<a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea">GtkDrawingArea</a> *darea,                                                         <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> width,                                                         <ahref="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint">gint</a> height);</pre><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p><code class="literal">gtk_drawing_area_size</code> is deprecated and should not be used in newly-written code.</p></div><p>(Use <a class="link" href="GtkWidget.html#gtk-widget-set-size-request"><code class="function">gtk_widget_set_size_request()</code></a> instead.)Sets the size that the drawing area will requestin response to a "size_request" signal. The drawing area may actually be allocated a sizelarger than this depending on how it is packedwithin the enclosing containers.</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><p><span class="term"><em class="parameter"><code>darea</code></em>&#160;:</span></p></td><td>a <a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea"><span class="type">GtkDrawingArea</span></a>.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>width</code></em>&#160;:</span></p></td><td>the width to request.</td></tr><tr><td><p><span class="term"><em class="parameter"><code>height</code></em>&#160;:</span></p></td><td>the height to request.</td></tr></tbody></table></div></div></div><div class="refsect1" lang="en"><a name="id4219203"></a><h2>See Also</h2><p>Sometimes <a class="link" href="GtkImage.html" title="GtkImage"><span class="type">GtkImage</span></a> is a useful alternative to a drawing area. You can put a <ahref="/usr/share/gtk-doc/html/gdk/gdk-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> in the <a class="link" href="GtkImage.html" title="GtkImage"><span class="type">GtkImage</span></a> and draw to the <ahref="/usr/share/gtk-doc/html/gdk/gdk-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a>, calling <a class="link" href="GtkWidget.html#gtk-widget-queue-draw"><code class="function">gtk_widget_queue_draw()</code></a> on the <a class="link" href="GtkImage.html" title="GtkImage"><span class="type">GtkImage</span></a> when you want to refresh to the screen.</p></div><div class="refsect1" lang="en"><a name="id4219266"></a><div class="refsect2" lang="en"><a name="id4219267"></a></div><hr><div class="refsect2" lang="en"><a name="id4219268"></a></div></div></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -