回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在试着在我的面板中使“桌子”看起来很好。我遇到的问题是,表填充了面板,但所有内容都在左边。我希望每列都是相同的大小和跨度的整个面板。我已经看到了列表ctrlautowidthmixin,但不确定如何利用它。下面是我的代码:</p>
<pre><code> self.Analysis = scrolled.ScrolledPanel(self.Notebook3, -1)
# Set Up Analysis Page (Page has four panels -- I care about Top left one)
self.AnalysisUL = wx.Panel(self.Analysis,-1, style=wx.BORDER_NONE)
self.AnalysisUR = wx.Panel(self.Analysis,-1, style=wx.BORDER_NONE)
self.AnalysisLL = wx.Panel(self.Analysis,-1, style=wx.BORDER_NONE)
self.AnalysisLR = wx.Panel(self.Analysis,-1, style=wx.BORDER_NONE)
# Top Left Box (Analyze Button and Projected Points Total)
self.Picks_Left = wx.ListCtrl(self.AnalysisUL,-1,style=wx.LC_REPORT | wx.BORDER_NONE)
self.Picks_Left.InsertColumn(1,'col1')
self.Picks_Left.InsertColumn(2,'col2',format=wx.LIST_FORMAT_CENTRE)
self.Picks_Left.InsertColumn(3,'col3',format=wx.LIST_FORMAT_CENTRE)
self.Picks_Left.InsertColumn(4,'col4',format=wx.LIST_FORMAT_CENTRE)
self.Picks_Left.SetColumnWidth(0,-2)
self.Picks_Left.SetColumnWidth(1,-2)
self.Picks_Left.SetColumnWidth(2,-2)
self.Picks_Left.SetColumnWidth(3,-2)
# Sizer
vbox_UL = wx.BoxSizer(wx.VERTICAL)
#Title for Table
fontUL = wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD)
self.UL_text = wx.StaticText(self.AnalysisUL, -1, 'Title')
self.UL_text.SetFont(fontUL)
vbox_UL.Add(self.UL_text, 0, wx.CENTER|wx.ALL,20)
vbox_UL.Add(self.Picks_Left,1,wx.EXPAND|wx.ALL,3)
self.AnalysisUL.SetSizer(vbox_UL)
</code></pre>
<p>同样,表跨越面板,但我的所有列都向左移动。另外,我不想手动设置列大小(除非我可以获取面板大小,然后除以我拥有的列数——因为该程序将在具有不同分辨率的计算机上使用)。我尝试过这种方法,但似乎无法得到正确的面板尺寸。我用GetSize()和GetClientSize()得到的数字都太小了。在</p>
<p>谢谢你的帮助!在</p>
<p>编辑:添加代码:</p>
^{pr2}$