wxpython - wx Python Gui start up too slow? -
the code below quite incomplete. want check stuff errors.... thing when compile it.... nothing happens after starts up. did wrong here? check task manager , see in background, gui never pops up.
from wx import * import order o import orderitem oi import customer c import item class ordermain ( wx.frame ): def __init__( self, parent ): wx.frame.__init__ ( self, parent, id = wx.id_any, title = u"orders", pos = wx.defaultposition, size = wx.size( 517,486 ), style = wx.default_frame_style|wx.tab_traversal ) self.setsizehintssz( wx.size( -1,-1 ), wx.defaultsize ) bsizer3 = wx.boxsizer( wx.vertical ) #create order item here self.ord = o.order() self.list = wx.listctrl( self, wx.id_any, wx.defaultposition, wx.defaultsize, wx.lc_report ) self.list.setminsize( wx.size( 500,300 ) ) self.list.setmaxsize( wx.size( 1000,800 ) ) self.list.insertcolumn(0,"order id") self.list.insertcolumn(1,"customer id") self.list.insertcolumn(2,"order price") self.list.insertcolumn(3,"order date") self.list.bind(evt_list_item_selected,self.getselecteditems) self.refresh_list(none) bsizer3.add( self.list, 0, wx.all|wx.align_center_horizontal, 5 ) bsizer4 = wx.boxsizer( wx.horizontal ) self.m_button20 = wx.button( self, wx.id_any, u"add order", wx.defaultposition, wx.defaultsize, 0 ) self.m_button20.bind(wx.evt_button, self.add_entry) bsizer4.add( self.m_button20, 1, wx.all|wx.align_center_vertical, 5 ) self.m_button21 = wx.button( self, wx.id_any, u"update record", wx.defaultposition, wx.defaultsize, 0 ) self.m_button21.bind(wx.evt_button, self.show_entry) bsizer4.add( self.m_button21, 1, wx.align_center_vertical|wx.all, 5 ) bsizer3.add( bsizer4, 1, wx.expand, 5 ) self.setsizer( bsizer3 ) self.layout() self.centre( wx.both ) def refresh_list(self, event): """place names of each itementry list""" self.index = 0 self.entrydict = {} self.list.deleteallitems() entry in self.ord.list_entries(): self.list.insertstringitem(self.index,entry.order_id) self.list.setstringitem(self.index,1,entry.cust_id) self.list.setstringitem(self.index,2,str(entry.order_price)) self.list.setstringitem(self.index,3,str(entry.order_date)) self.entrydict[self.index] = entry self.index += 1 def getselecteditems(self, event): """ gets selected items list control. selection returned list of selected indices, low high. """ selection = [] self.index = self.list.getfirstselected() selection.append(self.index) while len(selection) != self.list.getselecteditemcount(): self.index = self.list.getnextselected(self.index) selection.append(self.index) return self.index def add_entry(self, event): """add new entry order_date ite""" # start out blank, generic itementry entry = o.orderentry("","","0","") self.endiag = orderdetail(self,entry) self.endiag.showmodal() self.ord.add_entry(entry.order_id, entry.cust_id, str(entry.order_price), str(entry.order_date) ) self.refresh_list(none) def show_entry(self, event): """updates details of selected entry""" e_id = self.index entry = self.ord.list_entries()[e_id] self.endiag2 = orderdetailu(self , entry) self.endiag2.showmodal() self.refresh_list(none) def __del__( self ): pass class orderdetail ( wx.dialog ): def __init__( self, parent ,entry): wx.dialog.__init__ ( self, parent, id = wx.id_any, title = u"order details", pos = wx.defaultposition, size = wx.size( 500,500 ), style = wx.default_dialog_style ) self.setsizehintssz( wx.size( 500,500 ), wx.defaultsize ) self.entry = entry bsizer22 = wx.boxsizer( wx.vertical ) self.ordite = oi.orderitem() self.cust = c.customer() gsizer6 = wx.gridsizer( 2, 2, 0, 0 ) self.ordite=oi.orderitem() self.m_statictext28 = wx.statictext( self, wx.id_any, u"order id", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext28.wrap( -1 ) gsizer6.add( self.m_statictext28, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) self.order_id = wx.textctrl( self, wx.id_any, wx.emptystring, wx.defaultposition, wx.defaultsize,te_process_enter ) self.order_id.bind(evt_list_item_selected, self.setid) self.order_id.setminsize( wx.size( 200,-1 ) ) gsizer6.add( self.order_id, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) self.m_statictext29 = wx.statictext( self, wx.id_any, u"customer", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext29.wrap( -1 ) gsizer6.add( self.m_statictext29, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) m_choice1choices = self.cust.list_entries() self.cust_id = wx.choice( self, wx.id_any, wx.defaultposition, wx.size( 200,-1 ), m_choice1choices, 0 ) self.cust_id.setselection( 0 ) gsizer6.add( self.cust_id, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) self.m_statictext18 = wx.statictext( self, wx.id_any, u"order price", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext18.wrap( -1 ) gsizer6.add( self.m_statictext18, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) self.computeprice() self.m_statictext19 = wx.statictext( self, wx.id_any, str(self.entry.order_price), wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext19.wrap( -1 ) gsizer6.add( self.m_statictext19, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) self.m_statictext33 = wx.statictext( self, wx.id_any, u"date", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext33.wrap( -1 ) gsizer6.add( self.m_statictext33, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) self.order_date = wx.datepickerctrl( self, wx.id_any, wx.defaultdatetime, wx.defaultposition, wx.defaultsize, wx.dp_default ) gsizer6.add( self.order_date, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) bsizer22.add( gsizer6, 1, wx.expand, 5 ) bsizer24 = wx.boxsizer( wx.vertical ) self.m_statictext32 = wx.statictext( self, wx.id_any, u"items", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext32.wrap( -1 ) bsizer24.add( self.m_statictext32, 0, wx.all|wx.align_center_horizontal, 5 ) self.list2 = wx.listctrl( self, wx.id_any, wx.defaultposition, wx.size( -1,100 ), wx.lc_report|wx.lc_sort_descending ) self.list2.insertcolumn(0,"item id") self.list2.insertcolumn(1,"item price") self.list2.insertcolumn(2,"item qty") self.list2.bind(evt_list_item_selected,self.getselecteditems2) self.refresh_list2(none) bsizer24.add( self.list2, 0, wx.expand|wx.all|wx.align_center_horizontal, 5 ) gsizer7 = wx.gridsizer( 2, 2, 0, 0 ) self.m_button17 = wx.button( self, wx.id_any, u"add item", wx.defaultposition, wx.size( 100,-1 ), 0 ) gsizer7.add( self.m_button17, 1, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) self.m_button18 = wx.button( self, wx.id_any, u"delete item", wx.defaultposition, wx.size( 100,-1 ), 0 ) gsizer7.add( self.m_button18, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) bsizer24.add( gsizer7, 1, wx.expand, 5 ) bsizer22.add( bsizer24, 1, wx.expand, 5 ) gsizer8 = wx.gridsizer( 2, 2, 0, 0 ) self.m_button19 = wx.button( self, wx.id_any, u"ok", wx.defaultposition, wx.size( 100,-1 ), 0 ) gsizer8.add( self.m_button19, 0, wx.all|wx.align_center_horizontal, 5 ) self.m_button20 = wx.button( self, wx.id_any, u"cancel", wx.defaultposition, wx.size( 100,-1 ), 0 ) gsizer8.add( self.m_button20, 0, wx.all|wx.align_center_horizontal, 5 ) bsizer22.add( gsizer8, 1, wx.expand, 5 ) self.setsizer( bsizer22 ) self.layout() self.centre( wx.both ) def setid(self, event): entry.order_id = str(self.order_id.getvalue()) return self.order_id def closedial(self,event): """closes dialog""" self.destroy() def computeprice(self,event): entry in self.ordite.list_entries(): if self.ordite.orderitementry.order_id == self.entry.order_id: self.entry.order_price = self.entry.order_price + self.ordite.orderitementry.item_price return self.entry.order_price def refresh_list2(self, event): """place names of each itementry list""" self.index2 = 0 self.entrydict = {} self.list2.deleteallitems() entry in self.ordite.list_entries(): if self.ordite.orderitementry.order_id==self.entry.order_id: self.list2.insertstringitem(self.index,entry.order_id) self.list2.setstringitem(self.index,1,entry.item_id) self.list2.setstringitem(self.index,2,str(entry.item_price)) self.list2.setstringitem(self.index,3,str(entry.item_qty)) self.entrydict[self.index2] = entry self.index2 += 1 def getselecteditems2(self, event): """ gets selected items list control. selection returned list of selected indices, low high. """ selection2 = [] self.index2 = self.list2.getfirstselected() selection.append(self.index2) while len(selection2) != self.list2.getselecteditemcount(): self.index = self.list2.getnextselected(self.index2) selection2.append(self.index2) return self.index2 def add_item(self, event): """add new entry order_date ite""" # start out blank, generic entry entryit = oi.orderitementry("","","","") self.endiag = additemorder(self,entryit) self.endiag.showmodal() self.ordite.add_entry(entry.order_id, entry.cust_id, str(entry.order_price), str(entry.order_date) ) self.refresh_list(none) def ok(self, event): """sets details of current entry""" self.entry.set_details( str(self.order_id.getvalue()), str(self.cust_id.getvalue()), str(self.order_price.getvalue()), str(self.order_date) ) self.destroy() def __del__( self ): pass class additemorder ( wx.dialog ): def __init__( self, parent,entryit ): wx.dialog.__init__ ( self, parent, id = wx.id_any, title = u"add item", pos = wx.defaultposition, size = wx.size( 285,173 ), style = wx.default_dialog_style ) self.entryit = entryit self.setsizehintssz( wx.defaultsize, wx.defaultsize ) bsizer25 = wx.boxsizer( wx.vertical ) gsizer9 = wx.gridsizer( 2, 2, 0, 0 ) self.m_statictext34 = wx.statictext( self, wx.id_any, u"item id", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext34.wrap( -1 ) gsizer9.add( self.m_statictext34, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) m_choice2choices = i.list_entries() self.item_id = wx.choice( self, wx.id_any, wx.defaultposition, wx.defaultsize, m_choice2choices, 0 ) self.item_id.setselection( 0 ) gsizer9.add( self.item_id, 0, wx.all|wx.align_center_vertical|wx.align_center_horizontal, 5 ) self.m_statictext35 = wx.statictext( self, wx.id_any, u"item qty", wx.defaultposition, wx.defaultsize, 0 ) self.m_statictext35.wrap( -1 ) gsizer9.add( self.m_statictext35, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) self.item_qty = wx.textctrl( self, wx.id_any, wx.emptystring, wx.defaultposition, wx.size( 120,-1 ), 0 ) gsizer9.add( self.item_qty, 0, wx.all|wx.align_center_horizontal|wx.align_center_vertical, 5 ) bsizer25.add( gsizer9, 1, wx.expand, 5 ) self.m_button19 = wx.button( self, wx.id_any, u"ok", wx.defaultposition, wx.defaultsize, 0 ) bsizer25.add( self.m_button19, 0, wx.all|wx.align_center_horizontal|wx.expand, 5 ) self.setsizer( bsizer25 ) self.layout() self.centre( wx.both ) def __del__( self ): pass def main(): ex = wx.app() ordermain(none) ex.mainloop() if __name__ == '__main__': main()
you need show
frame:
def main(): ex = wx.app() frame = ordermain(none) ex.settopwindow(frame) frame.show() ex.mainloop()
Comments
Post a Comment