[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Launching a wx GUI from within our python framework

Barry

1/7/2008 1:27:00 PM

Hi,

At my work we have a framework writen in python which allows us to
test our equipment. This framework is quite large and uses a Singelton
called frameworkExec which we pass around between objects in order to
share functionailty. For example, frameWorkExec stores an instance of
the BatteryManagement module which I use to set the voltage during
certain tests.

I've just writen a gui using wx which I wish to use to calibrate our
voltage supply. I launch this app at the moment within python win as
follows -

app = VoltageCalibrationApp(0)
app.MainLoop()

class VoltageCalibrationApp(wx.App):
def OnInit(self):

voltageCalibration = {}
voltageCalibration[0.0] = 1.2
voltageCalibration[9.0] = 10.1
voltageCalibration[22.0] = 22.7
voltageCalibration[24.0] = 24.8
voltageCalibration[30.0] = 31.1
voltageCalibration[35.0] = 36.9

frame = VoltageCalibrationFrame(None, -1, 'Voltage Calibration',
voltageCalibration)
frame.Show(True)
frame.Centre()
return True

I hope that by adding the code above into the framework, I will be
able to call this app as part of the framework before the execution of
certain tests, as follows -

app = VoltageCalibrationApp(0)
app.MainLoop()
test1.run()
test2.run()

As you can see in the VoltageCalibrationApp class, I am currently
hardcoding voltageCalibration. Rather than doing this, I wish to store
them in our singleton which is available at the scope at which I
create my VoltageCalibrationApp instance. But I can't figure our a way
of referencing my singleton with the OnInit function. Normally, you
would pass the reference via __init__

How can I do this?

Thanks,

Barry.
1 Answer

Guilherme Polo

1/7/2008 1:45:00 PM

0

2008/1/7, bg_ie@yahoo.com <bg_ie@yahoo.com>:
> Hi,
>
> At my work we have a framework writen in python which allows us to
> test our equipment. This framework is quite large and uses a Singelton
> called frameworkExec which we pass around between objects in order to
> share functionailty. For example, frameWorkExec stores an instance of
> the BatteryManagement module which I use to set the voltage during
> certain tests.
>
> I've just writen a gui using wx which I wish to use to calibrate our
> voltage supply. I launch this app at the moment within python win as
> follows -
>
> app = VoltageCalibrationApp(0)
> app.MainLoop()
>
> class VoltageCalibrationApp(wx.App):
> def OnInit(self):
>
> voltageCalibration = {}
> voltageCalibration[0.0] = 1.2
> voltageCalibration[9.0] = 10.1
> voltageCalibration[22.0] = 22.7
> voltageCalibration[24.0] = 24.8
> voltageCalibration[30.0] = 31.1
> voltageCalibration[35.0] = 36.9
>
> frame = VoltageCalibrationFrame(None, -1, 'Voltage Calibration',
> voltageCalibration)
> frame.Show(True)
> frame.Centre()
> return True
>
> I hope that by adding the code above into the framework, I will be
> able to call this app as part of the framework before the execution of
> certain tests, as follows -
>
> app = VoltageCalibrationApp(0)
> app.MainLoop()
> test1.run()
> test2.run()
>
> As you can see in the VoltageCalibrationApp class, I am currently
> hardcoding voltageCalibration. Rather than doing this, I wish to store
> them in our singleton which is available at the scope at which I
> create my VoltageCalibrationApp instance. But I can't figure our a way
> of referencing my singleton with the OnInit function. Normally, you
> would pass the reference via __init__
>
> How can I do this?

You can define the __init__ method in your wx.App subclass, something like this:

class MyApp(wx.App):
def __init__(self, thingYouWant, redirect=True, filename=None):
self.thingyouwant = thingYouWant
wx.App.__init__(self, redirect, filename)

def OnInit(self):
... something that uses self.thingyouwant ...
...

>
> Thanks,
>
> Barry.
> --
> http://mail.python.org/mailman/listinfo/p...
>


--
-- Guilherme H. Polo Goncalves