1
當我只綁定一個TxtCtrl時,它的右側會一直展開到窗口邊緣。但是在創建了一個垂直的BoxSizer並添加了水平的BoxSizer之後,TxtCtrol的寬度僅爲100像素左右。爲什麼是這樣?爲什麼我的水平尺寸器在將其添加到垂直尺寸之後會改變寬度?
import wx
class MainPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.SIMPLE_BORDER)
top_box = wx.BoxSizer(wx.VERTICAL)
box1 = wx.BoxSizer(wx.HORIZONTAL)
box2 = wx.BoxSizer(wx.HORIZONTAL)
textureName = wx.TextCtrl(self, 1)
texturePath = wx.TextCtrl(self, 1)
box1.Add(wx.StaticText(self, 1, "Name: "), 0, wx.LEFT|wx.RIGHT|wx.TOP, 5)
box1.Add(textureName, 1, wx.ALIGN_LEFT|wx.RIGHT|wx.TOP, 5)
box2.Add(wx.StaticText(self, 1, "Path: "), 0, wx.LEFT|wx.RIGHT|wx.TOP, 5)
box2.Add(texturePath, 1, wx.ALIGN_LEFT|wx.RIGHT|wx.TOP, 5)
top_box.Add(box1)
top_box.Add(box2)
self.SetSizer(top_box)
class MainFrame(wx.Frame):
def __init__(self, parent, id):
title = "Exporter"
wx.Frame.__init__(self, parent, wx.ID_ANY, title,
size=(500, 420),
style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
self.panel = MainPanel(self)
self.Show()
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MainFrame(None, -1)
frame.Centre()
app.MainLoop()
pass
啊,是的,我試過wx.EXPAND,但忘記與比例值結合使用,所以它只是把另一個字段放在窗口的底部。謝謝! – optagon
EXPAND實際上並不需要與比例值結合使用,因爲它們各自在相反的方向上工作;我只是爲了方便而把'0'。 '添加(box1,flag = wx.EXPAND)'也可以。也許你只是'添加(box1,wx.EXPAND)',就像'Add',比例設置爲'wx.EXPAND',或者'Add(box1,8192)'。另外,如果您認爲這回答您的問題,請在某個時候接受它,但如果您希望獲得更好的答案,則可以等待更好的答案。 – tom10