2009-01-14 63 views
2

下面是基類我pythoncard應用:Pythoncard項目的setSize

class MyBackground(model.Background): 

    def on_initialize(self, event): 
     # if you have any initialization 
     # including sizer setup, do it here 
     self.setLayout() 

    def setLayout(self): 
     sizer1 = wx.BoxSizer(wx.VERTICAL) # main sizer 

     for item in self.components.itervalues(): 
      item.SetSize(item.GetBestSize()) 
      print item.GetBestSize(),item.GetSize() # here 
      sizer1.Add(item, 0, wx.ALL, 10) 

     sizer1.Fit(self) 
     self.panel.SetSizer(sizer1) 
     self.panel.Layout() 
     self.visible = 1 

它使用資源文件與以下內容:

{'application':{'type':'Application', 
     'name':'Template', 
'backgrounds': [ 
{'type':'Background', 
     'name':'bgTemplate', 
     'title':u'Standard Template with no menus', 
     'size': (800, 600), 
     'statusBar':1, 
     'style':['wx.MINIMIZE_BOX', 'wx.CLOSE_BOX', 'wx.MAXIMIZE_BOX', 'wx.FRAME_SHAPED', 'wx.CAPTION', 
       'wx.DEFAULT_FRAME_STYLE', 'wx.FULL_REPAINT_ON_RESIZE', 'wx.HW_SCROLLBAR_AUTO'], 

    'components': [ 


{'backgroundColor': '&H00FFFFFF&', 
    'name': 'MinMax0', 
    'position': (1080, 9900), 
    'size': (732, 220), 
    'text': '10000', 
    'type': 'TextField'}]}]} 

就行了,我已經標有評論說'這裏'打印(80, 21) (732, 220),我預計是(80, 21) (80, 21)。我如何設置pythoncard應用程序中組件的大小?

回答

0

爲什麼80,21? 你讓它做出了732,220的項目,這就是它做的。

或者還有別的東西,你沒有告訴我們?

+0

我敢肯定,我已經告訴了你一切,親愛的先生,但是我不記得很多,因爲我已經問了9個月。無論如何,從這個問題猜測,因爲它是我,我想我期待看到(80,21)(80,21),因爲將大小設置爲(80,21) - 這是/是GetBestSize的返回值) - 通過item.SetSize(item.GetBestSize())在上一行。 然後我碰到pythoncard的另一個問題,如果我沒有記錯的話,它與scrollbars有關,這讓我放棄並用wxpython重寫應用程序。 – hinoglu 2009-10-24 01:38:31