﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-一只飞不过沧海的鸟儿</title><link>http://www.cppblog.com/simon4761/</link><description>用心经营</description><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 17:40:17 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 17:40:17 GMT</pubDate><ttl>60</ttl><item><title>GTK+旅程------hello world</title><link>http://www.cppblog.com/simon4761/archive/2012/08/19/187684.html</link><dc:creator>一只飞不过沧海的鸟儿</dc:creator><author>一只飞不过沧海的鸟儿</author><pubDate>Sun, 19 Aug 2012 09:03:00 GMT</pubDate><guid>http://www.cppblog.com/simon4761/archive/2012/08/19/187684.html</guid><wfw:comment>http://www.cppblog.com/simon4761/comments/187684.html</wfw:comment><comments>http://www.cppblog.com/simon4761/archive/2012/08/19/187684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/simon4761/comments/commentRss/187684.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/simon4761/services/trackbacks/187684.html</trackback:ping><description><![CDATA[初学GTK+,直接贴代码:<br />
<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">************************************************************************<br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;File&nbsp;Name:&nbsp;main.cpp<br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;Author:&nbsp;nomis<br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;Mail:&nbsp;simon4761@163.com&nbsp;<br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&gt;&nbsp;Created&nbsp;Time:&nbsp;Sun&nbsp;19&nbsp;Aug&nbsp;2012&nbsp;03:42:42&nbsp;PM&nbsp;CST<br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #008000; ">&nbsp;***********************************************************************</span><span style="color: #008000; ">*/</span><br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;#include&lt;iostream&gt;<br />
<span style="color: #008080; ">10</span>&nbsp;#include&lt;gtk/gtk.h&gt;<br />
<span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />
<span style="color: #008080; ">12</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Test{<br />
<span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">public</span>:<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test(){}<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~Test(){}<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print_hello&nbsp;(GtkWidget&nbsp;*widget&nbsp;,&nbsp;gpointer&nbsp;data){<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_print&nbsp;("Hello&nbsp;World\n");<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">19</span>&nbsp;};<br />
<span style="color: #008080; ">20</span>&nbsp;<br />
<span style="color: #008080; ">21</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main(<span style="color: #0000FF; ">int</span>&nbsp;argc&nbsp;,&nbsp;<span style="color: #0000FF; ">char</span>*&nbsp;argv[]){<br />
<span style="color: #008080; ">22</span>&nbsp;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GtkWidget*&nbsp;window;<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GtkWidget*&nbsp;button;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_init(&amp;argc&nbsp;,&nbsp;&amp;argv);<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window&nbsp;=&nbsp;gtk_window_new(GTK_WINDOW_TOPLEVEL);<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_window_set_title(GTK_WINDOW(window),"helloworld");<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_signal_connect(window&nbsp;,&nbsp;"destroy"&nbsp;,&nbsp;G_CALLBACK(gtk_main_quit)&nbsp;,&nbsp;NULL);<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_container_set_border_width&nbsp;(GTK_CONTAINER&nbsp;(window),&nbsp;10);<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;button&nbsp;=&nbsp;gtk_button_new_with_label&nbsp;("Hello&nbsp;World");<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g_signal_connect&nbsp;(button,&nbsp;"clicked",&nbsp;G_CALLBACK&nbsp;(Test::print_hello),&nbsp;NULL);<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_container_add&nbsp;(GTK_CONTAINER&nbsp;(window),&nbsp;button);<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_widget_show&nbsp;(button);<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_widget_show(window);<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gtk_main();<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">37</span>&nbsp;}</div>
这是GTK+文档中的一个实例,但是被我改动过.<br />
我们可以将print_hello或者其它的回调函数放在另一个类里面,而放在其它类里面需要满足的条件是,函数必须由static修饰.然后通过类名::函数名的方法将回调函数传值.<br />
<br />
<br /><img src ="http://www.cppblog.com/simon4761/aggbug/187684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/simon4761/" target="_blank">一只飞不过沧海的鸟儿</a> 2012-08-19 17:03 <a href="http://www.cppblog.com/simon4761/archive/2012/08/19/187684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>