- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在水平 BoxSizer
中堆叠多个小部件。但是,我遇到了一些意想不到的行为。与 Sizer 中的项目均匀调整大小不同,一旦达到特定大小,项目将停止随窗口调整大小。
我认为从视觉上最好理解这一点。所以,以 gif 形式:
当前行为:
如果您注意到,两个 TextCtrl
会同步调整大小,直到大约一半标记,此时它们都停止调整大小,而是被“推”到窗口下方.
期望的行为:
期望的行为是,即使在最小尺寸下,两个 TextCtrl
仍将被平均分割(以上是通过 photoshop 实现的)
对于显示的两个小部件,这并不是一个真正的大问题,因为窗口的大小可以调整得比任何用户在出现不均匀的 TextCtrl
问题之前所做的更小。然而!在实际应用程序中,我需要将其中的 3-5 个(由各种小部件类型组成)彼此堆叠在一起。虽然两个不是问题,但添加更多(尤其是添加空格和填充时)很快会使问题更加明显。
完整代码:
import wx
from wx.lib.scrolledpanel import ScrolledPanel
class TestPanel(ScrolledPanel):
def __init__(self, parent):
ScrolledPanel.__init__(self, parent)
self.SetupScrolling(scroll_x=False)
self.textctrls = [wx.TextCtrl(self) for _ in range(4)]
sizer = wx.BoxSizer(wx.VERTICAL)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
for textctrl in self.textctrls:
hsizer.Add(textctrl, 1, wx.EXPAND)
sizer.Add(hsizer, 0, wx.EXPAND)
self.SetSizer(sizer)
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="test", size=(320, 240))
self.SetBackgroundColour('#ffffff')
self.panel = TestPanel(self)
self.Show()
if __name__ == '__main__':
app = wx.App(False)
MyFrame(None)
app.MainLoop()
代码应该相对简单明了。所有繁重的列表都在 ScrolledPanel
子类中完成。我创建按钮,将每个按钮添加到 Horizontal BoxSizer
,最后将 Horizontal sizer 添加到垂直容器中。
谁能确定为什么 sizer 中的小部件没有正确调整大小?
最佳答案
将 textctrls minsize 设置为零,这样它们就可以比默认的 minsize 更小。
import wx
from wx.lib.scrolledpanel import ScrolledPanel
class TestPanel(ScrolledPanel):
def __init__(self, parent):
ScrolledPanel.__init__(self, parent)
self.SetupScrolling(scroll_x=False)
self.textctrls = [wx.TextCtrl(self) for _ in range(4)]
sizer = wx.BoxSizer(wx.VERTICAL)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
for textctrl in self.textctrls:
hsizer.Add(textctrl, 1, wx.EXPAND)
textctrl.SetMinSize((0, -1))
sizer.Add(hsizer, 0, wx.EXPAND)
self.SetSizer(sizer)
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="test", size=(320, 240))
self.SetBackgroundColour('#ffffff')
self.panel = TestPanel(self)
self.Show()
if __name__ == '__main__':
app = wx.App(False)
MyFrame(None)
app.MainLoop()
关于python - 均匀调整 WxPython BoxSizer 内的多个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26704326/
我需要在半径R的圆内生成一个均匀随机点。 我意识到,通过在区间 [0 ... 2π) 中选择均匀随机的角度,并在区间 (0 ... R) 中选择均匀随机的半径,我最终会得到更多的点朝向中心,因为对于两
我想在一个正方形内生成 N 个点(均匀地)。我怎样才能做到这一点? 最佳答案 非常酷的问题,比我想象的要困难得多,但这就是想法。有关于 n 边形的论文,但我只会做正方形。因此,圆的均匀分布是一个常见问
考虑以下示例: import itertools import numpy as np a = np.arange(0,5) b = np.arange(0,3) c = np.arange(0,7)
SQL Server 将一组值分成 5 组,每组的 sum(count) 应该均匀分布。 表仅包含 2 列 rid 和 count。 create table t1(rid int, count in
我有以下简单的 HTML。 A B C 和 CSS: ul { width: 100%; display: flex; flex-direction:
我是一名优秀的程序员,十分优秀!