From: Peter G. <pe...@pg...> - 2006-09-26 14:01:07
|
Hi. Does anyone have a simple example showing how to use wxPerl with XRC and a frame. I tried using the following as a test, but I can't get it to work. Can someone give me some hints as to what is going wrong. Thanks, Peter <?xml version="1.0" encoding="UTF-8"?> <resource version="2.3.0.1" xmlns="http://www.wxwidgets.org/wxxrc"> <object class="wxFrame" name="ID_FRAME" subclass="MyFrame"> <style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU| wxCLOSE_BOX</style> <size>400,300</size> <title>My Simple Test</title> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> <object class="sizeritem"> <flag>wxALIGN_CENTER_VERTICAL|wxALL| wxADJUST_MINSIZE</flag> <border>5</border> <object class="wxStaticText" name="wxID_STATIC"> <label>Input</label> </object> </object> <object class="sizeritem"> <flag>wxALIGN_CENTER_VERTICAL|wxALL</flag> <border>5</border> <object class="wxButton" name="ID_BUTTON1"> <label>Press Me...</label> </object> </object> </object> </object> </resource> #! /usr/bin/perl use strict; use Wx; package MyApp; use vars qw(@ISA); use Wx::XRC ; @ISA = qw(Wx::App); sub OnInit { my ($this) = shift; my $xrc = Wx::XmlResource->new(); $xrc->InitAllHandlers(); $xrc->Load("globalXRC"); my ($frame) = MyFrame->new($xrc); $this->SetTopWindow($frame); $frame->Show(1); } package MyFrame; use vars qw(@ISA); @ISA = qw(Wx::Frame); use Wx qw(:everything); sub new { # new frame with no parent, id -1, title 'Hello, world!' my ($this) = shift->SUPER::new( undef, -1, 'Hello, world!',wxDefaultPosition , [350, 100]); my $xrc = shift ; $this->{xrc} = $xrc ; $xrc->LoadFrame($this,'ID_FRAME') ; return $this; } package main; my ($app) = MyApp->new(); $app->MainLoop() |