I am working with three dialog (named: Box1, Box2 and Box3) as seen below:-
Basic calculations are carried out on the Box1 and Box2, how do I display the sum of the calculation the third dialog, that is on Box3?
import wx
class Box1 ( wx.Dialog ):
def __init__( self, parent ):
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,141 ), style = wx.DEFAULT_DIALOG_STYLE )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
bSizer6 = wx.BoxSizer( wx.VERTICAL )
self.m_panel2 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
bSizer8 = wx.BoxSizer( wx.HORIZONTAL )
bSizer42 = wx.BoxSizer( wx.VERTICAL )
self.m_staticText61 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"item1", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText61.Wrap( -1 )
bSizer42.Add( self.m_staticText61, 0, wx.ALL, 5 )
self.m_staticText62 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"item2", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText62.Wrap( -1 )
bSizer42.Add( self.m_staticText62, 0, wx.ALL, 5 )
bSizer8.Add( bSizer42, 0, wx.EXPAND, 5 )
bSizer43 = wx.BoxSizer( wx.VERTICAL )
bSizer43.AddSpacer( ( 80, 0), 1, wx.EXPAND, 5 )
bSizer8.Add( bSizer43, 0, wx.EXPAND, 5 )
bSizer11 = wx.BoxSizer( wx.VERTICAL )
self.item1 = wx.RadioButton( self.m_panel2, wx.ID_ANY, u"7.50", wx.DefaultPosition, wx.Size( -1,20 ), 0 )
bSizer11.Add( self.item1, 0, wx.ALL, 5 )
self.item2 = wx.RadioButton( self.m_panel2, wx.ID_ANY, u"8.00", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer11.Add( self.item2, 0, wx.ALL, 5 )
bSizer8.Add( bSizer11, 0, 0, 5 )
self.m_panel2.SetSizer( bSizer8 )
self.m_panel2.Layout()
bSizer8.Fit( self.m_panel2 )
bSizer6.Add( self.m_panel2, 1, wx.EXPAND |wx.ALL, 5 )
bSizer13 = wx.BoxSizer( wx.HORIZONTAL )
self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Quatity:", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText25.Wrap( -1 )
self.m_staticText25.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
bSizer13.Add( self.m_staticText25, 0, wx.ALL|wx.EXPAND, 5 )
quantity_choiceChoices = [ u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"10" ]
self.quantity_choice = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, quantity_choiceChoices, 0 )
self.quantity_choice.SetSelection( 0 )
bSizer13.Add( self.quantity_choice, 0, wx.ALL, 5 )
self.ok_button = wx.Button( self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer13.Add( self.ok_button, 1, wx.ALL|wx.EXPAND, 5 )
self.cancel_button = wx.Button( self, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer13.Add( self.cancel_button, 1, wx.ALL, 5 )
bSizer6.Add( bSizer13, 0, wx.EXPAND, 5 )
self.SetSizer( bSizer6 )
self.Layout()
self.Centre( wx.BOTH )
# Connect Events
self.Bind( wx.EVT_CLOSE, self.cancelFunc )
self.ok_button.Bind( wx.EVT_BUTTON, self.okFunc )
self.cancel_button.Bind( wx.EVT_BUTTON, self.cancelFunc )
def __del__( self ):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc( self, event ):
self.Destroy()
def okFunc(self, event):
quatity_choice = int(self.quantity_choice.GetStringSelection())
if self.item1.GetValue():
price = quatity_choice * 7.5
print price
if self.item2.GetValue():
price = quatity_choice * 8.0
print price
Box2(None).ShowModal()
class Box2 ( wx.Dialog ):
def __init__( self, parent ):
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,141 ), style = wx.DEFAULT_DIALOG_STYLE )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
bSizer6 = wx.BoxSizer( wx.VERTICAL )
self.m_panel2 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
bSizer8 = wx.BoxSizer( wx.HORIZONTAL )
bSizer42 = wx.BoxSizer( wx.VERTICAL )
self.m_staticText61 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"item3", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText61.Wrap( -1 )
bSizer42.Add( self.m_staticText61, 0, wx.ALL, 5 )
self.m_staticText62 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"item4", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText62.Wrap( -1 )
bSizer42.Add( self.m_staticText62, 0, wx.ALL, 5 )
bSizer8.Add( bSizer42, 0, wx.EXPAND, 5 )
bSizer43 = wx.BoxSizer( wx.VERTICAL )
bSizer43.AddSpacer( ( 80, 0), 1, wx.EXPAND, 5 )
bSizer8.Add( bSizer43, 0, wx.EXPAND, 5 )
bSizer11 = wx.BoxSizer( wx.VERTICAL )
self.item3 = wx.RadioButton( self.m_panel2, wx.ID_ANY, u"1.50", wx.DefaultPosition, wx.Size( -1,20 ), 0 )
bSizer11.Add( self.item3, 0, wx.ALL, 5 )
self.item4 = wx.RadioButton( self.m_panel2, wx.ID_ANY, u"2.00", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer11.Add( self.item4, 0, wx.ALL, 5 )
bSizer8.Add( bSizer11, 0, 0, 5 )
self.m_panel2.SetSizer( bSizer8 )
self.m_panel2.Layout()
bSizer8.Fit( self.m_panel2 )
bSizer6.Add( self.m_panel2, 1, wx.EXPAND |wx.ALL, 5 )
bSizer13 = wx.BoxSizer( wx.HORIZONTAL )
self.m_staticText25 = wx.StaticText( self, wx.ID_ANY, u"Quatity:", wx.DefaultPosition, wx.DefaultSize, 0 )
self.m_staticText25.Wrap( -1 )
self.m_staticText25.SetFont( wx.Font( 15, 70, 90, 92, False, wx.EmptyString ) )
bSizer13.Add( self.m_staticText25, 0, wx.ALL|wx.EXPAND, 5 )
add_quantity_choiceChoices = [ u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"10" ]
self.add_quantity_choice = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, add_quantity_choiceChoices, 0 )
self.add_quantity_choice.SetSelection( 0 )
bSizer13.Add( self.add_quantity_choice, 0, wx.ALL, 5 )
self.ok_button = wx.Button( self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer13.Add( self.ok_button, 1, wx.ALL|wx.EXPAND, 5 )
self.cancel_button = wx.Button( self, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer13.Add( self.cancel_button, 1, wx.ALL, 5 )
bSizer6.Add( bSizer13, 0, wx.EXPAND, 5 )
self.SetSizer( bSizer6 )
self.Layout()
self.Centre( wx.BOTH )
# Connect Events
self.Bind( wx.EVT_CLOSE, self.cancelFunc )
self.ok_button.Bind( wx.EVT_BUTTON, self.okFunc )
self.cancel_button.Bind( wx.EVT_BUTTON, self.cancelFunc )
def __del__( self ):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc( self, event ):
self.Destroy()
def okFunc( self, event ):
add_quatity_choice = int(self.add_quantity_choice.GetStringSelection())
if self.item3.GetValue():
add_price = add_quatity_choice * 1.5
print add_price
if self.item4.GetValue():
add_price = add_quatity_choice * 2.0
print add_price
Box3(None).ShowModal()
class Box3 ( wx.Dialog ):
def __init__( self, parent ):
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 257,165 ), style = wx.DEFAULT_DIALOG_STYLE )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
bSizer13 = wx.BoxSizer( wx.VERTICAL )
self.totalText = wx.StaticText( self, wx.ID_ANY, u"Total is:", wx.DefaultPosition, wx.DefaultSize, 0 )
self.totalText.Wrap( -1 )
self.totalText.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
bSizer13.Add( self.totalText, 0, wx.ALL|wx.EXPAND, 5 )
self.totalText1 = wx.StaticText( self, wx.ID_ANY, u"?", wx.DefaultPosition, wx.DefaultSize, 0 )
self.totalText1.Wrap( -1 )
self.totalText1.SetFont( wx.Font( 20, 70, 90, 90, False, wx.EmptyString ) )
self.totalText1.SetLabel(str('price + add_price'))
# How to I get the "price + add_price" printed above
bSizer13.Add( self.totalText1, 0, wx.ALL, 5 )
self.SetSizer( bSizer13 )
self.Layout()
self.Centre( wx.BOTH )
# Connect Events
self.Bind( wx.EVT_CLOSE, self.cancelFunc )
def __del__( self ):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc( self, event ):
self.Destroy()
app = wx.App(0)
Box1(None).Show()
app.MainLoop()
Simple arithmetic is being performed on Box1 and Box2, I want the sum of the results to be displayed on the third dialog (Box3)
How do I get this done?
The code is based on wxpython classic and python 2.7
You need to pass the information collected from each dialog to the next dialog through their init methods. Here is a quick working example
import wx
class Box1(wx.Dialog):
def __init__(self, parent):
wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
size=wx.Size(500, 141), style=wx.DEFAULT_DIALOG_STYLE)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer6 = wx.BoxSizer(wx.VERTICAL)
self.m_panel2 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
bSizer8 = wx.BoxSizer(wx.HORIZONTAL)
bSizer42 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText61 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"item1", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText61.Wrap(-1)
bSizer42.Add(self.m_staticText61, 0, wx.ALL, 5)
self.m_staticText62 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"item2", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText62.Wrap(-1)
bSizer42.Add(self.m_staticText62, 0, wx.ALL, 5)
bSizer8.Add(bSizer42, 0, wx.EXPAND, 5)
bSizer43 = wx.BoxSizer(wx.VERTICAL)
bSizer43.AddSpacer((80, 0), 1, wx.EXPAND, 5)
bSizer8.Add(bSizer43, 0, wx.EXPAND, 5)
bSizer11 = wx.BoxSizer(wx.VERTICAL)
self.item1 = wx.RadioButton(self.m_panel2, wx.ID_ANY, u"7.50", wx.DefaultPosition, wx.Size(-1, 20), 0)
bSizer11.Add(self.item1, 0, wx.ALL, 5)
self.item2 = wx.RadioButton(self.m_panel2, wx.ID_ANY, u"8.00", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer11.Add(self.item2, 0, wx.ALL, 5)
bSizer8.Add(bSizer11, 0, 0, 5)
self.m_panel2.SetSizer(bSizer8)
self.m_panel2.Layout()
bSizer8.Fit(self.m_panel2)
bSizer6.Add(self.m_panel2, 1, wx.EXPAND | wx.ALL, 5)
bSizer13 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText25 = wx.StaticText(self, wx.ID_ANY, u"Quatity:", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText25.Wrap(-1)
self.m_staticText25.SetFont(wx.Font(15, 70, 90, 92, False, wx.EmptyString))
bSizer13.Add(self.m_staticText25, 0, wx.ALL | wx.EXPAND, 5)
quantity_choiceChoices = [u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"10"]
self.quantity_choice = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, quantity_choiceChoices, 0)
self.quantity_choice.SetSelection(0)
bSizer13.Add(self.quantity_choice, 0, wx.ALL, 5)
self.ok_button = wx.Button(self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer13.Add(self.ok_button, 1, wx.ALL | wx.EXPAND, 5)
self.cancel_button = wx.Button(self, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer13.Add(self.cancel_button, 1, wx.ALL, 5)
bSizer6.Add(bSizer13, 0, wx.EXPAND, 5)
self.SetSizer(bSizer6)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.Bind(wx.EVT_CLOSE, self.cancelFunc)
self.ok_button.Bind(wx.EVT_BUTTON, self.okFunc)
self.cancel_button.Bind(wx.EVT_BUTTON, self.cancelFunc)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc(self, event):
self.Destroy()
def okFunc(self, event):
quatity_choice = int(self.quantity_choice.GetStringSelection())
price = 0
if self.item1.GetValue():
price = quatity_choice * 7.5
print price
if self.item2.GetValue():
price = quatity_choice * 8.0
print price
Box2(None, price).ShowModal()
class Box2(wx.Dialog):
def __init__(self, parent, price1):
self.price1 = price1
wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
size=wx.Size(500, 141), style=wx.DEFAULT_DIALOG_STYLE)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer6 = wx.BoxSizer(wx.VERTICAL)
self.m_panel2 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
bSizer8 = wx.BoxSizer(wx.HORIZONTAL)
bSizer42 = wx.BoxSizer(wx.VERTICAL)
self.m_staticText61 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"item3", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText61.Wrap(-1)
bSizer42.Add(self.m_staticText61, 0, wx.ALL, 5)
self.m_staticText62 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"item4", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText62.Wrap(-1)
bSizer42.Add(self.m_staticText62, 0, wx.ALL, 5)
bSizer8.Add(bSizer42, 0, wx.EXPAND, 5)
bSizer43 = wx.BoxSizer(wx.VERTICAL)
bSizer43.AddSpacer((80, 0), 1, wx.EXPAND, 5)
bSizer8.Add(bSizer43, 0, wx.EXPAND, 5)
bSizer11 = wx.BoxSizer(wx.VERTICAL)
self.item3 = wx.RadioButton(self.m_panel2, wx.ID_ANY, u"1.50", wx.DefaultPosition, wx.Size(-1, 20), 0)
bSizer11.Add(self.item3, 0, wx.ALL, 5)
self.item4 = wx.RadioButton(self.m_panel2, wx.ID_ANY, u"2.00", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer11.Add(self.item4, 0, wx.ALL, 5)
bSizer8.Add(bSizer11, 0, 0, 5)
self.m_panel2.SetSizer(bSizer8)
self.m_panel2.Layout()
bSizer8.Fit(self.m_panel2)
bSizer6.Add(self.m_panel2, 1, wx.EXPAND | wx.ALL, 5)
bSizer13 = wx.BoxSizer(wx.HORIZONTAL)
self.m_staticText25 = wx.StaticText(self, wx.ID_ANY, u"Quatity:", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText25.Wrap(-1)
self.m_staticText25.SetFont(wx.Font(15, 70, 90, 92, False, wx.EmptyString))
bSizer13.Add(self.m_staticText25, 0, wx.ALL | wx.EXPAND, 5)
add_quantity_choiceChoices = [u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"10"]
self.add_quantity_choice = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
add_quantity_choiceChoices, 0)
self.add_quantity_choice.SetSelection(0)
bSizer13.Add(self.add_quantity_choice, 0, wx.ALL, 5)
self.ok_button = wx.Button(self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer13.Add(self.ok_button, 1, wx.ALL | wx.EXPAND, 5)
self.cancel_button = wx.Button(self, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0)
bSizer13.Add(self.cancel_button, 1, wx.ALL, 5)
bSizer6.Add(bSizer13, 0, wx.EXPAND, 5)
self.SetSizer(bSizer6)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.Bind(wx.EVT_CLOSE, self.cancelFunc)
self.ok_button.Bind(wx.EVT_BUTTON, self.okFunc)
self.cancel_button.Bind(wx.EVT_BUTTON, self.cancelFunc)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc(self, event):
self.Destroy()
def okFunc(self, event):
add_quatity_choice = int(self.add_quantity_choice.GetStringSelection())
add_price = 0
if self.item3.GetValue():
add_price = add_quatity_choice * 1.5
print add_price
if self.item4.GetValue():
add_price = add_quatity_choice * 2.0
print add_price
Box3(None, self.price1+add_price).ShowModal()
class Box3(wx.Dialog):
def __init__(self, parent, total):
self.total = total
wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
size=wx.Size(257, 165), style=wx.DEFAULT_DIALOG_STYLE)
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
bSizer13 = wx.BoxSizer(wx.VERTICAL)
self.totalText = wx.StaticText(self, wx.ID_ANY, u"Total is:", wx.DefaultPosition, wx.DefaultSize, 0)
self.totalText.Wrap(-1)
self.totalText.SetFont(wx.Font(20, 70, 90, 90, False, wx.EmptyString))
bSizer13.Add(self.totalText, 0, wx.ALL | wx.EXPAND, 5)
self.totalText1 = wx.StaticText(self, wx.ID_ANY, u"?", wx.DefaultPosition, wx.DefaultSize, 0)
self.totalText1.Wrap(-1)
self.totalText1.SetFont(wx.Font(20, 70, 90, 90, False, wx.EmptyString))
self.totalText1.SetLabel(str(total))
# How to I get the "price + add_price" printed above
bSizer13.Add(self.totalText1, 0, wx.ALL, 5)
self.SetSizer(bSizer13)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.Bind(wx.EVT_CLOSE, self.cancelFunc)
def __del__(self):
pass
# Virtual event handlers, overide them in your derived class
def cancelFunc(self, event):
self.Destroy()
app = wx.App(0)
Box1(None).Show()
app.MainLoop()