﻿<?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>BlogJava-悄然无声的Blog-随笔分类-wxPython</title><link>http://www.blogjava.net/myqiao/category/45107.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 24 May 2010 13:18:24 GMT</lastBuildDate><pubDate>Mon, 24 May 2010 13:18:24 GMT</pubDate><ttl>60</ttl><item><title>wxPython 教程 （2）—— Frame</title><link>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Wed, 07 Oct 2009 11:59:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/297397.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/297397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/297397.html</trackback:ping><description><![CDATA[<table width="750" height="280">
    <tbody>
        <tr>
            <td valign="bottom">
            <p><strong>一、wxpython 包的安装</strong><br />
            在 教程 1 中，有人按照给出的代码运行，出现了如下错误：<br />
            <em>ImportError: No module named wx<br />
            </em><br />
            这是因为 wxpython 不是默认的包，需要自己安装。具体的安装地址是：<br />
            <a href="http://www.wxpython.org/download.php">http://www.wxpython.org/download.php</a><br />
            <br />
            您可以根据自己系统的平台和python版本选择相应的包下载，安装好后就不会出现上面的错误了。下载页面中还有一个 <strong>Demo 包</strong>，里面包含了大量的示例代码和帮助文件，是学习 wxpython 的好帮手。</p>
            </td>
            <td width="30"></td>
            <td width="340">
            <script type="text/javascript"><!--
            google_ad_client = "pub-1798174031137512";
            /* 336x280 图文 */
            google_ad_slot = "0230816054";
            google_ad_width = 336;
            google_ad_height = 280;
            //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
            </td>
        </tr>
    </tbody>
</table>
<p><strong>二、Frame</strong></p>
<p>Frame 其实就是窗体，前面我们生成窗体的时候没有给他任何参数，只生成了一个默认的窗体，生成默认窗体的代码如下：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">frame&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.Frame(None)</span></div>
<p><br />
其实 wx.Frame 可以传入很多参数，由此来控制生成窗体的样式和行为，现在我们来看看 Frame构造函数的原型：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800080">__init__</span><span style="color: #000000">(self,&nbsp;Window&nbsp;parent,&nbsp;int&nbsp;id</span><span style="color: #000000">=-</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;String&nbsp;title</span><span style="color: #000000">=</span><span style="color: #000000">EmptyString,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point&nbsp;pos</span><span style="color: #000000">=</span><span style="color: #000000">DefaultPosition,&nbsp;Size&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">DefaultSize,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">DEFAULT_FRAME_STYLE,&nbsp;String&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">FrameNameStr)</span></div>
<p><strong>参数1：parent<br />
</strong>父窗体。如果没有父窗体，可以设为 None。</p>
<p><strong>参数2：id</strong><br />
窗体编号。如果设置为-1，则系统自动给他分配一个编号。默认为-1.</p>
<p><strong>参数3：title</strong><br />
窗体的标题栏，即Caption。默认为空。</p>
<p><strong>参数4：pos</strong><br />
窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。</p>
<p><strong>参数5：size<br />
</strong>窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。</p>
<p><strong>参数6：style<br />
</strong>窗体样式。默认值为 <strong>DEFAULT_FRAME_STYLE</strong><br />
默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合：<br />
wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN<br />
它包括最小化按钮、最大化按钮、系统菜单、标题栏、关闭按钮、可变大小等等。您也可以根据自己的需求改变样式，具体请参照帮助。</p>
<p><strong>参数7：name</strong><br />
窗体名称。</p>
<p>可以看到，<strong><u>7个参数中6个都有默认值</u></strong>，只有第一个参数 parent 需要设置一下，所以一个最简单的窗体就是：<br />
frame = wx.Frame(None)</p>
<p><strong>三、几个小例子</strong></p>
<p>窗体标题：<br />
frame = wx.Frame(None,title="Hello World")</p>
<p>位置和大小：<br />
frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200))</p>
<p>样式一：只有一个光秃秃的标题栏<br />
frame = wx.Frame(None,style=wx.CAPTION)</p>
<p>样式二：只有客户区，没有标题栏，也不能改变大小<br />
frame = wx.Frame(None,style=0)</p>
<p>样式三：只有一个关闭按钮，不能改变大小<br />
frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)<br />
</p>
<p>&nbsp;<br />
//========================================== <br />
<script type="text/javascript"><!--
google_ad_client = "pub-1798174031137512";
/* 728x90 图文 */
google_ad_slot = "5397571580";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<img src ="http://www.blogjava.net/myqiao/aggbug/297397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2009-10-07 19:59 <a href="http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wxPython 教程 （1）—— 一个简单例子</title><link>http://www.blogjava.net/myqiao/archive/2009/10/05/297248.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Mon, 05 Oct 2009 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2009/10/05/297248.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/297248.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2009/10/05/297248.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/297248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/297248.html</trackback:ping><description><![CDATA[<table width="750" height="280">
    <tbody>
        <tr>
            <td valign="bottom">
            <p><span style="line-height: 25px; font-size: 14px">我们用一个最简单的例子来开始这个教程，只有几行代码，但是确实能生成一个完整的窗体，如下图：</span></p>
            <p><img alt="" src="http://images.cnblogs.com/cnblogs_com/myqiao/wxPython/simple.jpg" width="326" height="211" /></p>
            </td>
            <td width="30"></td>
            <td width="340">
            <script type="text/javascript"><!--
            google_ad_client = "pub-1798174031137512";
            /* 336x280 图文 */
            google_ad_slot = "0230816054";
            google_ad_width = 336;
            google_ad_height = 280;
            //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
            </td>
        </tr>
    </tbody>
</table>
<p>先给出代码，后面解释：</p>
<div>
<div class="cnblogs_code"><!--
google_ad_client = "pub-1798174031137512";
/* 728x90 图文 */
google_ad_slot = "5397571580";
google_ad_width = 728;
google_ad_height = 90;
//--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/python</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #008000">#</span><span style="color: #008000">&nbsp;-*-&nbsp;coding:&nbsp;GBK&nbsp;-*-</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #008000">#</span><span style="color: #008000">&nbsp;simple.py</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;wx<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">app&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.App()<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">frame&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.Frame(None)<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">frame.Show()<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">app.MainLoop()</span></div>
</div>
<div><br />
</div>
<div>第一行代码：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #008000">#</span><span style="color: #008000">!/usr/bin/python</span></span></div>
<div>告诉你的程序 python 解释器的路径，只是在 linux 系统下有用，在 Windows 下写上这行代码不起作用，但是也没问题}}}&nbsp;</div>
<div><br />
</div>
<div>第二行代码：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #008000">#</span><span style="color: #008000">&nbsp;-*-&nbsp;coding:&nbsp;GBK&nbsp;-*-</span></span></div>
<div><font color="#008000" size="3"><span style="font-size: 13px"><span style="color: #000000; font-size: 14px">告诉 python 系统字符编码，这样我们就可以在程序中使用中文汉字了，如果没有这一行就是乱码。Windows 下是 GBK，Linux 下是UTF-8</span></span></font></div>
<div><br />
</div>
<div>第五行</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #008000">#</span><span style="color: #008000">&nbsp;simple.py</span></span></div>
<div>是一个注释，有没有都无所谓，看个人风格</div>
<div><br />
</div>
<div>第七行：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;wx</span></span></div>
<div>导入 wxPython 库</div>
<div><br />
</div>
<div>第九行：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #000000">app&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.App()</span></span></div>
<div>初始化应用程序</div>
<div><br />
</div>
<div>第十一、十二行：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">frame&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.Frame(None)<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">frame.Show()</span></span></div>
<div>创建一个 Frame （就是窗体），并显示出来。这里可以有很多参数，放到下一节在研究</div>
<div><br />
</div>
<div>最后一行：</div>
<div><span style="background-color: #eeeeee; font-size: 13px"><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">app.MainLoop()</span></span></div>
<div>应用程序进入消息循环</div>
<br />
//========================================== <br />
<script type="text/javascript"><!--
google_ad_client = "pub-1798174031137512";
/* 728x90 图文 */
google_ad_slot = "5397571580";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<img src ="http://www.blogjava.net/myqiao/aggbug/297248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2009-10-05 13:07 <a href="http://www.blogjava.net/myqiao/archive/2009/10/05/297248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>