2009-01-14 8 views
2

Ci-dessous est la classe de base de mon application PythonCard:article 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 

qui utilise le fichier de ressources dont le contenu ci-dessous:

{'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'}]}]} 

Sur la ligne que j'ai marqué avec un commentaire disant «ici» imprime (80, 21) (732, 220), que je m'attendais à être (80, 21) (80, 21). Comment puis-je définir la taille des composants dans une application pythoncard?

Répondre

0

Pourquoi 80,21? Vous l'avez dit pour faire l'article 732,220 et c'est ce qu'il a fait.

Ou y a-t-il autre chose que vous ne nous avez pas dit?

+0

Je suis sûr que je vous ai tout dit et n'importe quoi cher monsieur, mais je ne m'en souviens pas beaucoup depuis 9 mois que je l'ai demandé. de toute façon, devinant de la question et puisque c'est moi, je pense que je m'attendais à voir (80, 21) (80, 21) en raison de la taille de (80,21) - qui est/était la valeur de retour de GetBestSize () - par item.SetSize (item.GetBestSize()) dans la ligne précédente. Puis j'ai rencontré un autre problème avec pythoncard, si je me souviens bien, il était lié à des barres de défilement, et cela m'a fait abandonner et réécrire l'application avec wxpython à partir de zéro. – hinoglu