问题标签 [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.
c++ - WxWidgets:Sizer 和浪费的空间
目前在我的项目中,我有一个面板,其中的内容如下所示:
- wxBoxSizer(wxVertical)
- wxSearchControl(wxExpand)
- wxListControl (wxExpand)
- wxBoxSizer(wxHorizontal, wxALIGN_CENTER)
- wxButton (wxALL)
- wxButton (wxALL)
问题是,当面板展开时,它会在按钮所在的下方浪费空间,而当面板收缩时也会出现相反的问题,这意味着在收缩 wxListControl 之前将按钮完全从视线中移除,这是不受欢迎的行为。期望的行为是这样的:当扩展我希望所有东西都达到它的“合适的大小”时,唯一会继续扩展的是 wxListControl,当收缩时 wxListControl 应该首先收缩,直到它达到最小尺寸,然后是按钮搜索控制应该收缩。下面的图片应该突出这些问题。
**
底部浪费的空间:http: //i.stack.imgur.com/lsXOv.png
按钮被破坏:http: //i.stack.imgur.com/U50In.png
所以这是我的代码(仅针对小宽度进行了编辑,保留了错误的命名以及所有内容):
我唯一尝试过的就是不断尝试在 wxFormBuilder 中使用不同标志的不同配置中随机不同的 sizer,徒劳地试图让它工作,但这总是徒劳无功。我看过几个sizer教程,唯一的结论是我需要编写自己的sizer,我希望我遗漏了一些东西,我不必这样做。
python - wxPython:如何加快向网格中添加大量小部件
编辑:我进行了更多调试以意识到,动作所消耗的大部分时间实际上都花在了创建小部件上,而不是将它们放入 sizer 中。所以问题是如何更快地创建它们?
我需要通过添加大约 300 个复选框来动态更改对话框的内容。我使用 wx.GridSizer 和添加它们的循环,但它真的很慢。有没有办法更快地做到这一点?一些等待添加所有小部件然后手动计算位置和大小的方法,因为我相信通过调用 Sizer 的 Add 方法会立即计算大小。这是我所做的一个捷径:
添加大约 300 个元素大约需要一分钟,我相信必须有更快的方法,因为例如 QIP 或 ICQ 等应用程序会在一秒钟内显示大量联系人 :) 感谢您提供任何线索!
另外原谅我的英语。
射线
python - 获取 wxpython 中按钮的位置
我试图找出 wxpython 中两个按钮的位置。我有一个 gui,左侧有一个小的垂直面板,右侧有一个大面板。
在右侧面板(笔记本)中,我使用 Vertical Sizer 堆叠三个面板:
我的窗格 3 包含三个使用 gridsizer 组织的按钮(一行,三列)。这一切看起来都很棒。现在,我希望能够获得三个按钮的屏幕位置(它们会根据屏幕分辨率、调整 gui 大小的人等而变化)。
我的屏幕尺寸是 (1920,1080),它源自wx.GetDisplaySize()
. 我试过 self.button1.GetScreenPosition() 和 self.pane3.GetScreenPosition 和 self.button1.GetPosition()。第一个返回位置 (77,93),第二个返回 (61,95),最后一个返回 (0,0)。用 测试后testtext = wx.StaticText(self.Notebook3, -1, 'X marks spot',pos=(240,820))
,我发现我想要返回的按钮的位置是 (240,820) - 大约。这是我要返回的号码。
有谁知道我做错了什么?谢谢!
*编辑*
我的完整代码 - 应该是可运行的 - 我在 1920x1080 上运行它(对于文本'x 标记点')。
wxpython - 如何调整 wx 面板的大小以适合 wx.Notebook (wxpython)
我有一个框架,其中的面板在顶层包含一个笔记本,每个页面都包含不同的窗格:
每个子窗格的大小都合适,但是我无法扩展主框架/面板以适应顶部笔记本。或者 - 也许我的问题是我无法让顶部笔记本扩展以适应它的孩子:我实际上无法判断哪个是问题,效果是一样的:主框架对于孩子笔记本来说太小了。
结果是子窗格看起来不错,但整体框架太小:必须手动展开(有效)才能看到整个子窗格:
帮助?
python - wxPython对齐小部件和拟合
其实我有两个问题:
- 如何防止 self.Fit() 重新调整小部件的大小?
这是没有 .Fit() 的窗口,我对 TextCtrl 的宽度非常满意,但我希望窗口的高度能够适应小部件。
当我添加 .Fit() 时,TextCtrl 的宽度会发生变化:
- 如何对齐两个 TextCtrl,因为您可以注意到它们的起点不同,因为我尝试使用 wx.FlexGridSizer,但在调整 StaticText 和 TextCtrl 之间的间距时遇到了麻烦
这是代码:
python - 仅带有垂直滚动条和 WrapSizer 的 ScrolledPanel
我使用 aWrapSizer
为了有一个像这样的自动布局(作为缩略图库)(见左边的截图):
如果有两个很多元素,我希望ScrollBar
在面板上添加一个(仅垂直)-(见右侧截图)。如何使用 WrapSizer 将这样的垂直滚动条添加到面板?
我尝试混合WrapSizer
和ScrolledPanel
,但无法获得所需的布局。
python - 如何调整面板的大小以适合网格
这是我想做的最简单的例子。它是面板内的网格:
我希望整个事物自行调整大小,以便网格的内容都可见。目前发生的事情是这样的:
(注:编辑 - 我把笔记本拿出来,为了更简单,结果是一样的)
想法?谢谢!
grid - wxPython 网格调整大小
我正在尝试使用 wx.grid.Grid 来显示数据库,并且正在使用 GridBagSizer 来构成布局。
问题是: 在调整窗口大小时,wx.Grid 会尽可能地伸展并填充所有垂直空间。
网格的代码实际上与 wxPython 演示中的代码相同,只是更改了数据。
布局部分:
我发布了一些截图:
http://i.stack.imgur.com/v2hRz.jpg http://i.stack.imgur.com/Sfu6d.jpg
wxpython - wxpython隐藏所有sizer元素
我有一个使用多个面板的脚本,具体取决于当时正在执行的代码行。我的意图是根据需要显示和隐藏面板,并在每次更改后使用 Layout 以保持一切美观整洁。这一般对我有用,但我遇到了障碍。起初,当面板数量很少时,我会通过面板名称或其他尺寸大小的项目名称来隐藏必要的面板。由于脚本变得越来越复杂,不再实用,所以我打算每次都隐藏所有内容,所以我不必担心在任何给定时间跟踪显示的内容,然后只显示执行时需要的面板。查看sizer文档,我认为使用起来很简单:
但这产生了以下错误:
文件“C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx_core.py”,第 13192 行,在 ShowItems 中返回核心.Sizer_ShowItems(*args, **kwargs) wx._core.PyAssertionError: C++ wxSizerItem::Show() 中 ....\src\common\sizer.cpp(436) 的断言“wxAssertFailure”失败:无法显示未初始化的sizer 项目
python - 替换 wxPython GridSizer 中的项目
我有wx.Frame
一个wx.GridSizer
。这个网格包含几个自定义wx.Panel
的 . 我需要交换网格中两个单元格的内容。Detach
我使用、GetItem
和方法尝试了几种解决方案,Insert
但均未成功。
例如,假设我有一个 3x3 网格,其中包含从 0 到 7 的 8 个元素(我的自定义面板)。在这种情况下,网格的最后一个单元格是空的。我想移动最后一个单元格(grid[8])中的最后一项(grid[7])。
我能怎么做?如果最后一个单元格不为空,有什么区别?