On 20 Mar, 17:21, Stef Mientki <[EMAIL PROTECTED]>
wrote:

> I've tried several of the above mentioned builders,
> with the same result.
> I've also looked at wxFormBuilder,
> but I found it far too difficult and
> fully unreadable (how can you create actions/bindings on components you don't 
> see ?).
> So I might be very very naive,
> but why all so complex ??


Complex? Not at all! Let me show you an 'hello world!' example. Below
is the content of two files: HelloWorld.py hand-written be me, and
HelloWorld.xrc emitted by wxFormBuilder. I gave each control a care
about a name in wxFormBuilder, and use that to e.g. bind events and
load resources.





HelloWorld.py:

import wx
from wx import xrc
import sys

class MainFrame(object):

    def __init__(self, xml):
        self.xml = xml
        self.frame = xml.LoadFrame(None,'MainFrame')
        self.frame.Bind(wx.EVT_MENU, self.on_menu_exit,
id=xrc.XRCID('menuExit'))
        self.frame.Bind(wx.EVT_BUTTON, self.on_say_hello,
id=xrc.XRCID('btnSayHello'))
        self.frame.Show()

    def on_say_hello(self, evt):
        dlg = self.xml.LoadDialog(self.frame, 'HelloDialog')
        dlg.ShowModal()
        dlg.Destroy()

    def on_menu_exit(self, evt):
        self.frame.Destroy()
        sys.exit(0)


class HelloWordApp(wx.App):

    def OnInit(self):
        xml = xrc.XmlResource('HelloWorld.xrc')
        self.MainFrame = MainFrame(xml)
        return True


if __name__ == '__main__':
    app = HelloWordApp(0)
    app.MainLoop()






HelloWorld.xrc:


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<resource xmlns="http://www.wxwindows.org/wxxrc"; version="2.3.0.1">
        <object class="wxFrame" name="MainFrame">
                <style>wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL</style>
                <size>289,171</size>
                <title></title>
                <object class="wxMenuBar" name="m_menubar2">
                        <label></label>
                        <object class="wxMenu" name="fileMenu">
                                <label>File</label>
                                <object class="wxMenuItem" name="menuExit">
                                        <label>Exit </label>
                                        <help></help>
                                </object>
                        </object>
                </object>
                <object class="wxBoxSizer">
                        <orient>wxVERTICAL</orient>
                        <object class="spacer">
                                <option>1</option>
                                <flag>wxEXPAND</flag>
                                <border>5</border>
                                <size>0,0</size>
                        </object>
                        <object class="sizeritem">
                                <option>0</option>
                                
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</
flag>
                                <border>5</border>
                                <object class="wxButton" name="btnSayHello">
                                        <label>Say hello</label>
                                        <default>0</default>
                                </object>
                        </object>
                        <object class="spacer">
                                <option>1</option>
                                <flag>wxEXPAND</flag>
                                <border>5</border>
                                <size>0,0</size>
                        </object>
                </object>
        </object>
        <object class="wxDialog" name="HelloDialog">
                <style>wxDEFAULT_DIALOG_STYLE</style>
                <size>190,144</size>
                <title></title>
                <object class="wxBoxSizer">
                        <orient>wxVERTICAL</orient>
                        <object class="sizeritem">
                                <option>1</option>
                                <flag>wxEXPAND</flag>
                                <border>5</border>
                                <object class="wxBoxSizer">
                                        <orient>wxVERTICAL</orient>
                                        <object class="spacer">
                                                <option>1</option>
                                                <flag>wxEXPAND</flag>
                                                <border>5</border>
                                                <size>0,0</size>
                                        </object>
                                        <object class="sizeritem">
                                                <option>0</option>
                                                
<flag>wxALIGN_CENTER|wxALL</flag>
                                                <border>5</border>
                                                <object class="wxStaticText" 
name="m_staticText11">
                                                        <font>
                                                                <size>14</size>
                                                                
<family>swiss</family>
                                                                
<style>normal</style>
                                                                
<weight>normal</weight>
                                                                
<underlined>0</underlined>
                                                                <face>Times New 
Roman</face>
                                                        </font>
                                                        <label>Hello 
World!</label>
                                                </object>
                                        </object>
                                        <object class="spacer">
                                                <option>1</option>
                                                <flag>wxEXPAND</flag>
                                                <border>5</border>
                                                <size>0,0</size>
                                        </object>
                                </object>
                        </object>
                        <object class="sizeritem">
                                <option>0</option>
                                <flag>wxEXPAND | wxALL</flag>
                                <border>5</border>
                                <object class="wxStaticLine" 
name="m_staticline4">
                                        <style>wxLI_HORIZONTAL</style>
                                </object>
                        </object>
                        <object class="sizeritem">
                                <option>0</option>
                                <flag>wxEXPAND</flag>
                                <border>5</border>
                                <object class="wxStdDialogButtonSizer">
                                        <object class="button">
                                                
<flag>wxALIGN_CENTER_HORIZONTAL|wxALL</flag>
                                                <border>5</border>
                                                <object class="wxButton" 
name="wxID_OK">
                                                        <label>&amp;OK</label>
                                                </object>
                                        </object>
                                </object>
                        </object>
                </object>
        </object>
</resource>










-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to