我已经创建了一个小测试表来尝试自定义树控件。但是我无法设置树的大小。我想在左边有一个固定的宽度,在右边有一个可变的宽度,所以我使用了一个box sizer来分割表格。我已将树放在左侧部分,固定宽度为300.右侧部分的文本框占据了剩余的空间。到目前为止一切都很好......但如果我将树控件的大小更改为400或500,我看不到树变得更大。如果我使用普通的树控件它可以工作。 由于复选框,我想使用CustomTreeCtrl。普通树控件没有项目的复选框。
这里是测试表格的代码:
import wx
from wx.lib.agw.customtreectrl import CustomTreeCtrl
class TestFrame(wx.Frame):
def __init__(self):
super(TestFrame, self).__init__(None, -1, "Test frame", size=(800, 600), pos=(200, 100))
panel = wx.Panel(self, -1)
textBox = wx.TextCtrl(panel, -1, "This will show the item's content", style=wx.TE_MULTILINE)
# This one works as expected
#tree = wx.TreeCtrl(panel, -1, size=(300, -1), style=wx.SUNKEN_BORDER)
# This one does not seem to have the correct size...
tree = CustomTreeCtrl(panel, -1, size=(300, -1), style=wx.SUNKEN_BORDER)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(tree, 0, wx.EXPAND | wx.ALL, 5)
box.Add(textBox, 1, wx.EXPAND | wx.ALL, 5)
panel.SetSizer(box)
# Show the frame
app = wx.App(redirect=False)
frame = TestFrame()
frame.Show()
app.MainLoop()
我尝试调用Layout()方法并调用面板或box sizer的SetBestFittingSize()方法,但似乎没有任何效果。
我在Ubuntu上使用Python 2.7和wxPython 2.8.12.1运行它。
提前致谢!