<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[如何中文显示我的PHP-GTK程序]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 29 Jun 2008 08:53:57 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	如何中文显示我的PHP-GTK程序<br/><br/>官方没有出台正式方案之前，暂时先用这个（学习中，高手有更好的解决方案请跟贴）：<br/><br/>在php.ini的[PHP-GTK]部分<br/><br/>加入php-gtk.codepage = gb2312 ;将php格式保存为ansi格式<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;php-gtk.codepage = uft-8&nbsp;&nbsp;&nbsp;&nbsp; ;将php格式保存为utf8格式<br/><br/><br/>在你创建的窗口时<br/><br/><br/>$window = &amp;new GtkWindow();<br/>$window-&gt;style-&gt;font =<br/>gdk::font_load(&quot;-unknown-宋体-normal-r-normal-*-*-120-*-*-p-*-gb2132-0&quot;);<br/><br/><br/>这里调用gdk::font_load函数载入字体，注意是“GDK”，不是“GTK”<br/><br/>（顺便抗议一下，程序一长，居然自动截断掉，只好这样写了）<br/><br/>2、我的PHP-GTK程序为什么那么单调，而演示程序确有颜色？<br/><br/>首先要感谢hisunweb大师的耐心指导，本文才得以完成。<br/><br/>文章的开始，我要更正一下上次的笔误（没有人有意见吧 ）<br/><br/>gdk::font_load(&quot;-unknown-simsun-normal-r-normal-*-*-120-96-96-p-*-gb2312-0&quot;);<br/><br/>同时，本文将给出中文化的更好的方法：<br/><br/>(1)、将PHP.INI中的[PHP-GTK]模块下<br/>php-gtk.codepage = &quot;gb2312&quot;<br/><br/>(2)、在原PHP-GTK程序目录下新建mygtkrc文件，内容如下：<br/>style &quot;defaultfont&quot;<br/>{<br/>font = &quot;-unknown-simsun-normal-r-normal-*-*-120-96-96-p-*-gb2312-0&quot;<br/>}<br/>class &quot;GtkWidget&quot; style &quot;defaultfont&quot;<br/><br/>(3)、在你的PHP-GTK程序的Gtk::main();之前加入<br/>Gtk::rc_parse(dirname($argv[0]).&#039;/mygtkrc&#039;);<br/><br/>现在你的PHP-GTK能够很顺利的现实中文了。<br/><br/>上面是开胃菜，下面开始重点：大家都看到了，我们在上面新建了一个文件（名字自己爱怎么写就怎么写，以下简称资源文件），这个文件有点类似HTML的 CSS样式，能够对PHP-GTK程序的风格进行解析，如字体、颜色等。如果我们需要鼠标移动到按钮上时，按钮显示颜色，可以在你的资源文件中这样定义：<br/>style &#039;button_list&#039; = &#039;button&#039;<br/>{<br/>bg[PRELIGHT] = { 0, 0.75, 0x00 }<br/>}<br/>widget &quot;main window.*GtkScrolledWindow.*GtkButton*&quot; style &quot;button_list&quot;<br/><br/>同时，在你的程序中，我们要这样定义一个标志“main window”，就有点像HTML中的ID<br/>$window = &amp;new GtkWindow();<br/>$window-&gt;set_name(&#039;main window&#039;);<br/><br/>这样一来，你的GtkScrolledWindow下的GtkButton鼠标经过时都有颜色，详见附带gtk.php程序。<br/><br/>资源文件如何定义了？我们前只有这些信息：<br/>如假如一行<br/>widget &quot;main window.*GtkButton*&quot; style &quot;main_button&quot;<br/><br/>该定义把&quot;主窗口&quot;中的所有按钮构件设置为资源文件中定义的&quot;main_buttons&quot;风格。<br/><br/>有几个指令用于改变一个构件的属性。<br/>fg - 设置构件的背景色。<br/>bg - 设置构件的前景色。<br/>bg_pixmap - 设置构件的背景为一幅像素图。<br/>font - 设置构件使用的字体。<br/>另外，一个构件可以有几种状态，你可以为每种状态设置不同的颜色，图像和字体。这些状态是：<br/>NORMAL - 构件的一般状态，如鼠标不位于构件上方，键未按下时构件所处的状态。<br/>PRELIGHT - 当鼠标移到构件上方，在此状态下定义的颜色生效。<br/>ACTIVE - 当处于构件上的鼠标键被按下或点击时，该构件被激活，相应的属性值将生效。<br/>INSENSITIVE - 当构件被设置为不敏感(insensitive)时，它不能被激活，相应属性值起作用。<br/>SELECTED - 选中一个对象时，取相应的属性值。<br/>当用&quot;fg&quot;和&quot;bg&quot;关键字设置构件的颜色时，其格式是：<br/>fg[&lt;STATE&gt;] = { Red, Green, Blue }<br/><br/>这里STATE是前述状态(PRELIGHT,ACTIVE,...)之一,Red,Green,Blue是范围0-1.0间的数值, {1.0,1.0,1.0}表示白色。这些数值必须是浮点型的，否则将被存为0，因此写为&quot;1&quot;的数值是无效的，应写为&quot;1.0&quot;.0值写为&quot;0&quot;却不错，因为即使系统认不出也没关系。所有系统不认识的数值都会被设为0。<br/>bg_pixmap除了用一个文件名取代颜色名外和以上格式很相似。<br/>pixmap_path是一个由‘:’分隔开的路径表。当搜索你定义的图像文件时选择这些路径。<br/><br/>最后，可能你对font的定义很感兴趣，我把定义方法转过来，原汁原味，就不翻译啦~~（每一行对应一个参数）<br/><br/>foundry xxx (where the font was created. &#039;unknown&#039; is okay)<br/>family xxx (e.g. Arial)<br/>weight xxx (e.g. bold, medium)<br/>slant x (r - roman, i = italic, o = oblique)<br/>setwidth xxx (e.g. normal, condensed)<br/>addedstyle xxx (e.g. serif, sans. Leave blank for none)<br/>pixelsize N (set either this or pointsize, not both)<br/>pointsize N (point size, e.g. 120)<br/>resx N (x res the font was created for, in dots per inch)<br/>resy N (y res the font was created for, in dots per inch)<br/>space x (m = monospaced, p = proportional, c = cell)<br/>averagewidth N (average character width in pixels. 0 if unknown)<br/>registry xxx (e.g. utf, iso8859 or adobe)<br/>encoding xxx (e.g. 1 or 2 (for iso8859) or fontspecific)<br/><br/>例如：$font = gdk::font_load(&#039;-unknown-Arial-normal-r-normal--*-120-96-96-p-0-iso8859-1&#039;);<br/><br/>3、PHP-GTK的相关资源<br/><br/>作者：Verdana<br/><br/>http://kromann.info/php4-gtk.php<br/>这里有从 CVS 源码编译的 php-gtk 的版本，每天更新<br/>类似 php snaps, 不过容易出问题。<br/>还有 php5 的 gtk 版本。<br/><br/>http://www.cweiske.de/phpgtk.htm<br/>德国网站，但内容是英文的，很容易看懂<br/><br/>提供了 PHP-GTK AppWizard 下载<br/>非常不错的软件，帮你自动生成 PHP GTK 程序，不需要写一行<br/>代码，哈哈哈<br/><br/>提供 PHP-Themes 下载，非常漂亮啊～<br/>http://www.cweiske.de/phpgtk_themes.htm<br/><br/>如果没有看上眼的也可以自己定制 :P<br/><br/>另外学 GTK 的话，就必须要提一下 winGlade ，呵呵～<br/>一个 GUI 的 GTK 界面设计器。类似 VC 设计窗体一样<br/>可以把控件拖来拖去，修改属性。<br/>生成的是 xml 文件。<br/><br/>这里 http://wingtk.sourceforge.net/ 下载<br/><br/>4、AppWizard 确实很好，但是不能使用中文目录/文件，咋办咧^_^？<br/><br/>(1)、在同一目录下新建资源文件mygtkrc，内容如下：<br/>style &quot;defaultfont&quot;<br/>{<br/>font = &quot;-unknown-simsun-normal-r-normal-*-*-120-96-96-p-*-gb2312-0&quot;<br/>}<br/>class &quot;GtkWidget&quot; style &quot;defaultfont&quot;<br/><br/>(2)、源程序解压后，appwizard.php-gtk的349行，也就是GTK::main();的前面一行加入：<br/>Gtk::rc_parse(dirname($argv[0]).&#039;/mygtkrc&#039;);<br/><br/>(3)、保存后，支持中文目录/文件名。第一次启动，需要等待一定的时间，俺的机器好像用了将近2分钟，不要认为是死机，值得等待。<br/><br/>以后遇到相同的中文问题，可以先尝试用上面的方法。<br/>祝大家玩得开心，村民们有什么PHP-GTK的咚咚，全部贡献出来吧，人民会记住你的（村棍除外）。<br/><br/>注意：AppWizard第一次运行，不能放在带有中文的路径目录中，否则很可能会出错。<br/><br/>6、如何修改默认的PHP-GTK风格，比如我比较喜欢MAC风格？<br/><br/>将资源文件改名为“.gtkrc”，注意，前面有点号，这个过程可以通过DOS窗口实现（作者是这么说的），把它放到C:Documents and Settings{你的用户名}.gtkrc<br/><br/>例如有个文件内容如下<br/><br/>style &quot;default&quot;<br/>{<br/>bg[NORMAL] = &quot;#ededed&quot;<br/>bg[PRELIGHT] = &quot;#8db6cd&quot;<br/>bg[ACTIVE] = &quot;#bababa&quot;<br/>bg[INSENSITIVE] = &quot;#ededed&quot;<br/>bg[SELECTED] = &quot;#8db6cd&quot;<br/><br/>fg[NORMAL] = &quot;#000000&quot;<br/>fg[PRELIGHT] = &quot;#000000&quot;<br/>fg[ACTIVE] = &quot;#000000&quot;<br/>fg[INSENSITIVE] = &quot;#bababa&quot;<br/>fg[SELECTED] = &quot;#000000&quot;<br/><br/>engine &quot;engradient&quot;<br/>{<br/>use_gradient = TRUE<br/>handlebox_marks = TRUE<br/>scrollbar_marks = TRUE<br/>}<br/>}<br/><br/>widget &quot;*&quot; style &quot;default&quot;<br/><br/>style &quot;tooltip&quot;<br/>{<br/>bg[NORMAL] = &quot;#ffffff&quot;<br/>}<br/>widget &quot;*gtk-tooltip*&quot; style &quot;tooltip&quot;<br/><br/>将它改名.gtkrc，再放到：<br/>C:Documents and Settings开心果目录下，以后你运行的PHP-GTK程序都是用这个风格。<br/><br/>当然，你必须拥有相应的风格库文件，否则只能显示主题颜色，框架不变，并提示找不到库文件。如果仅仅需要颜色主题，请把这一段删掉：<br/>engine &quot;engradient&quot;<br/>{<br/>use_gradient = TRUE<br/>handlebox_marks = TRUE<br/>scrollbar_marks = TRUE<br/>}<br/><br/>顺便提一句，AppWizard不能够生成我们所想要得PHP-GTK程序，它仅仅是个测试（JUST A TEST，作者又是这么说的），而且生成的代码垃圾一堆，继续寻找传说中的法宝~~<br/><br/>还有就是，PHP-GTK程序，得到ZEND的编码支持，也就是说，ZEND编译后PHP-GTK依然能够执行。
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 如何中文显示我的PHP-GTK程序]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>