2009年6月30日 星期二

[Python] wxPython 直接使用 XRC 建立 GUI

一直以來,在Python上手工刻GUI都是件讓我很困擾的事。在Tkinter, wxPython, PyGTK, PyQT…一堆GUI Framework裡面,我還找不到一個適合自己的。

本來是想用wxPython來上手的,沒想到越練習越挫折,囧rz。

這邊有一個用XRC(xml resources)來建構GUI的部份,範例是可以正常運作,但是經小修增後,會出現一些我不能理解的問題…。

xml.py

#!/usr/bin/python
# xml.py

import  wx
import  wx.xrc  as  xrc

class Xml(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)

        res = xrc.XmlResource(’resource.xrc’)
        res.LoadPanel(self, ‘MyPanel’)

        self.Bind(wx.EVT_BUTTON, self.OnClose,  id=xrc.XRCID(’CloseButton’))
        self.Center()
        self.Show(True)

    def OnClose(self, event):
        self.Close()

app = wx.App()
Xml(None, -1, ‘xml.py’)
app.MainLoop()

resource.xrc

<?xml version="1.0" ?>
<resource>
  <object class="wxPanel" name="MyPanel">
   <object class="wxButton" name="CloseButton">
    <label>Close</label>
    <pos>15,10</pos>
   </object>
  </object>
</resource>

來源參考: wxPython:XRC

1 則留言:

  1. pyqt4 中有 qt designer, 非常方便簡單使用。拉來拉去然後用 pyuic4 就可以輕易的產生 gui 介面的 code,完全不用寫!甚至與 eric4 一起用,整合性非常好。

    回覆刪除