geekdoc-python-zh/docs/pythonlibrary/wxpython-gridsizers-and-fat...

1.7 KiB
Raw Permalink Blame History

wxPython: GridSizers 和胖文本控件

原文:https://www.blog.pythonlibrary.org/2008/05/21/wxpython-gridsizers-and-fat-textctrls/

在我的上一篇文章中,我写了如何使用 GridSizer 创建通用表单。不幸的是wx。TextCtrls 最后看起来都很胖。好像通过一个 wx。当添加 TextCtrl 时,将扩展标志添加到 GridSizer使其扩展以填充单元格并在调整窗口本身大小时调整大小。

解决这个问题的一个方法是改变将 TextCtrl 添加到 sizer 的方式。最初的一行看起来像这样:


gridSizer.Add(inputTxtOne, 0, wx.EXPAND)

现在添加位标志 wx。全部并将边框宽度设置为 5 像素:


gridSizer.Add(inputTxtOne, 0, wx.EXPAND|wx.ALL, 5)

请看下面的前后截图,看看效果。这两个程序都运行在 Windows XP 机器上:

之前 TextCtrls with no border

TextCtrls with a border

**需要注意的一点是:如果向这些单元格中的任何一个添加一个胖部件,比如多行 TextCtrl除了 StaticCtrls 之外所有其他控件都会明显变宽。Robin Dunn 的书《wxPython in Action》指出,“一个网格尺寸调整器最适合于孩子自然都一样大的布局...一个尺寸差异很大的网格尺寸器看起来有点奇怪。它继续说,如果你想在一个网格中使用不同大小的部件,那么你需要使用 flex 网格尺寸器或网格袋尺寸器。

敬请期待!**