问题标签 [sizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何制作动态数量的水平 BoxSizer?
我有一个函数可以计算可以在屏幕上显示的图像数量,如果图像多于可以放在屏幕上的图像,我会调整图像的大小直到它们都可以出现。
然后,我想用一个垂直的 box sizer 和几个水平的 box sizer 来显示它们!
box sizer 的水平数量是动态的,根据图像的数量,它可以只有一个或多个。
如何定义多个 box sizer 并将它们添加到垂直 box sizer 中?
wxpython - 如何获取 wx.GridSizer 的单个单元格的大小?
我想知道是否可以wx.GridSizer
在调用后获得单个单元格的大小Fit()
。如果是这样,我该怎么做?
python - wxPython:具有浮点值的“超级” wx.SpinCtrl,在 sizer 内布局
wx.SpinCtrl
仅限于在整数上旋转,而不是浮点数。因此,我正在构建一个wx.TextCtrl
+wx.SpinButton
组合类,它使我能够在花车上旋转。我能够以编程方式调整它们的大小和布局,使组合看起来与普通的wx.SpinCtrl
.
我从 中继承这个组合,wx.TextCtrl
因为我希望它的父面板捕获wx.EVT_TEXT
事件。如果你能改进我的这个论点,我将不胜感激。
的wx.EVT_SPIN_UP
和wx.EVT_SPIN_DOWN
事件wx.SpinButton
都是内部实现,父框架不关心这些事件。
现在,我刚刚撞到了一堵砖墙。我的组合课程不适用于sizer。.Add()
将组合类设置为 a后wx.GridBagSizer
,仅wx.TextCtrl
在wx.GridBagSizer
. wx.SpinButton
是自己留下的。不过,wx.EVT_SPIN*
绑定工作得很好。
我的问题是布局。wx.GridBagSizer
如果我想把它当作一个小部件,我应该如何编写这个类?
这是我的组合类代码:
python - wxPython:一个 wx.PyControl 可以包含一个 wx.Sizer 吗?
a 可以wx.PyControl
包含 awx.Sizer
吗?
请注意,我最终在这里尝试做的事情(带有浮点值的微调器)已经在另一个问题中得到了回答。我对在 a 中布局小部件特别感兴趣,wx.PyControl
如果我遇到需要制作自己的自定义小部件时,这项技能可能会很有用。我已经通读了CreatingCustomControls,但它没有在wx.PyControl
子类中使用sizer。
使用下面的代码,我的CustomWidget
只是看起来不正确。我还没有做,因为DoGetBestSize
我认为这适用于对小部件的操作。我实际上正在做它的事情。wx.Sizer
wx.Sizer
CustomWidget
这是我的代码(没有子小部件之间的事件绑定):
编辑:这是我更正的类代码,感谢Steven Sproat:
python - wxPython:当它是 wx.Panel 的子级时出现 wx.PyControl 布局问题
这是这个问题的延续:
wxPython: Can a wx.PyControl contains a wx.Sizer?
这里的主要主题是使用 a wx.Sizer
inside a wx.PyControl
。Fit()
我在CustomWidget
围绕它的子小部件时遇到了问题。Layout()
通过调用after解决了这个问题Fit()
。
但是,据我所知,该解决方案仅在CustomWidget
是 a 的直接子代时才有效wx.Frame
。当它成为 a 的孩子时,它就会崩溃wx.Panel
。
编辑:使用下面的代码,CustomWidget
不会正确调整大小以适合其子级。我观察到只有当CustomWidget
(作为 的子类wx.PyControl
)是 a 的子类时才会发生这种情况wx.Panel
;否则,如果它是 a 的直接子代,则wx.Frame
它Fit()
是完美的。
这是代码:
wxpython - 使用 wxPython 绘制网格矩形容器或盒子
全部,我想画一个矩形或者一个里面有 20 个槽的容器。它就像一个 cd 容器或存档,带有用于插入 cd 或书籍的空槽。我选择 wxPython。对于这 20 个水平空槽,我看到有 wx.BoxSizer(wx.Horizonal) 或其他尺寸器来进行布局。
我的问题是,wx.BoxSizer 生成的空间是否可以有“可见边框和灰色背景”(代表空槽)?在我看来,这是不可能的。sizer 似乎只做布局,而不是生成可见的子窗口。
如果不可能的话,我想我需要为这个“边框和彩色背景”功能创建一个插槽窗口类,并创建20个插槽窗口对象并添加到sizer中。然后,我必须使用创建另一个窗口类来表示书或 CD,并将这个 CD 窗口插入到插槽窗口中。
这听起来有点尴尬。我不知道槽窗口是否是必要的,或者 wx.sizer (或其他大小)可以达到与槽窗口相同的效果。
wxpython - 如何让 wxFrame 刷新而无需在 wxPython 中手动调整它的大小?
我在 wxPython 脚本中有一个简单的框架,它不像我想要的那样令人耳目一新。
基本上框架开始是空白的。然后,用户可以选择不同的数据集以网格形式查看。选择数据集后,脚本会创建一个网格并将其放入框架中的 sizer 中。问题是框架以非常小的尺寸显示网格,sizer 没有像它应该的那样扩展(或者至少是我期望的那样)。此外,当我手动(即用鼠标)调整框架大小时,sizer 会突然像它应该的那样扩展,并且整个框架都充满了网格。
我怎样才能让 sizer 立即扩展网格,而不仅仅是在我手动调整框架大小时?
python - 在 wx.GridBagSizer 中放置元素(面板)
我正在使用 gridbagsizer 将两个面板放在一个框架内。
我希望 control_panel 位于 main_panel 之上(如上所示)。然而,这是我得到的输出:
当我指定相反时,我不知道为什么顶部面板比底部面板大得多。(2, 5) 用于顶部, (5, 5) 用于底部。当我将它缩小时它也有一个奇怪的行为,它基本上给了我我想要的东西(见下图),但是当我再次放大它时我不知道如何保持这个比例。
但是,当您开始调整大小时(即使是少量),您可以看到(下图)形状和比例在另一个方向上发生显着变化(底部变得更小而顶部变得更大)。
仍在尝试学习这个sizer,并且在我见过的任何示例中都找不到这个问题。还尝试尝试所有参数并进行一些测试,但我无法弄清楚这里发生了什么。任何帮助将非常感激。
编辑:添加下面的图像以帮助下面的评论。
wxpython - wxpython:嵌套的sizer,左上角的小方块?
我正在尝试研究 wxPython 和 sizers,并将以下示例放在一起:
当我运行它时,我会在图像上看到一个窗口:
有人可以解释一下,为什么我会在左上角得到那个灰色的小方块 - 实现代码的正确方法是什么?(按钮是故意着色的,所以很明显..)我在 Ubuntu Lucid 上,以防这是特定于平台的。
编辑:那个正方形显然是面板本身,但是我不知道为什么它不按预期调整大小并成为按钮的“父级”?
c++ - 在对话框 (wxDialog) 中拟合大网格 (wxGrid)
这是我的布局:
我有一个包含网格(比例为 1)和 ok/cancel 按钮栏的 sizer
一切都在 wxDialog 中
这里是:
问题是网格包含太多行,并且溢出屏幕,所以最后我看不到对话框的顶部。在对话框上调用 Fit() 时,有没有办法限制它的高度?
我试过这样的东西:SetSizeHints(-1,-1,-1,500);
但SetMaxSize(500,500)
它没有奏效。
我也尝试过这样做:this->SetSize(this->GetSize().GetX(), 500);
,但是由于垂直滚动条出现在网格上,它不够宽并且出现了水平滚动条。
编辑
在我调用的构造函数中wxGrid(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize)