2016-09-19 10 views
2

ListBoxを適切に配置する方法を理解しようとしています。 ListBoxの行を挿入するとすぐに、レイアウトは混乱に変わります。ListBoxをフレームwxpythonに配置する

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import wx 

oplist=[] 
with open("options.txt","r") as f: 
    for line in f: 
     oplist.append(line.rstrip('\n')) 
print(oplist) 

class Example(wx.Frame): 

    def __init__(self, parent, title): 
     super(Example, self).__init__(parent, title = title, size=(200,300)) 

     self.InitUI() 
     self.Centre() 
     self.Show() 

    def InitUI(self): 
     p = wx.Panel(self) 
     vbox= wx.BoxSizer(wx.VERTICAL) 
     self.l1 = wx.StaticText(p, label="Enter number", style=wx.ALIGN_CENTRE) 
     vbox.Add(self.l1, -1, wx.ALIGN_CENTER_HORIZONTAL, 200) 
     self.b1 = wx.Button(p, label="Buton 1") 
     vbox.Add(self.b1, -1, wx.ALIGN_CENTER_HORIZONTAL,100) 
     self.flistbox= wx.ListBox(self,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL) 
     vbox.Add(self.flistbox, -1, wx.CENTER, 10) 
     p.SetSizer(vbox) 

app = wx.App() 
Example(None, title="BoxSizer") 
app.MainLoop() 

ここととせずに出力: With ListBoxWithout

答えて

1

は、リストボックスは、自己を使用してフレームに親されています。

self.flistbox= wx.ListBox(
    self,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL) 

他のコントロールと同様に、pを使用してパネルを親にする必要があります。

self.flistbox= wx.ListBox(
    p,choices=oplist, size=(100,100), name="Field", wx.ALIGN_CENTER_HORIZONTAL) 
関連する問題