首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修复wxpython ogl库中的画布形状

修复wxpython ogl库中的画布形状
EN

Stack Overflow用户
提问于 2012-01-28 17:48:00
回答 1查看 468关注 0票数 0

我正在制作一个小程序,使用wxpython和ogl库在python中绘制片段。我已经创建了画布并将其添加到size,但无法冻结画布的大小。

代码语言:javascript
复制
sizer = wx.BoxSizer(wx.VERTICAL)
canvas_sizer = wx.BoxSizer(wx.HORIZONTAL)
text_sizer = wx.BoxSizer(wx.HORIZONTAL)
stat = wx.StaticText(panel,-1,'position')

canvas = ogl.ShapeCanvas(panel)
diagram = ogl.Diagram()
canvas.SetDiagram(diagram)
diagram.SetCanvas(canvas)

canvas_sizer.Add(canvas,1,wx.GROW)
text_sizer.Add(stat,1,wx.ALL,5)
sizer.Add(canvas_sizer,1,wx.GROW)
sizer.Add(text_sizer)

self.SetSizer(sizer)
sizer.Fit(self)

上面的代码是我实际代码的一部分。请建议固定画布大小的方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-28 19:00:29

您必须将插槽必须占用的比例设置为0,并为内容设置一个最小大小,以防需要:

代码语言:javascript
复制
sizer = wx.BoxSizer(wx.VERTICAL)
text_sizer = wx.BoxSizer(wx.HORIZONTAL)
canvas_sizer = wx.BoxSizer(wx.HORIZONTAL)
stat = wx.StaticText(self, -1, "position")

# for testing I used a panel instead of your ogl object
canvas = wx.Panel(self, -1)    
canvas.SetMinSize((-1, 70))     # Needed here to give a min size to panel,
                                # otherwise the panel would not be seen.
                                # The sizer will occupy the minimal 
                                # to hold its contents.

canvas_sizer.Add(canvas, 1, wx.EXPAND, 0)
sizer.Add(canvas_sizer, 0, wx.EXPAND, 0)   # <- note proportion 0 here
text_sizer.Add(stat, 1, wx.EXPAND, 0)
sizer.Add(text_sizer, 1, wx.EXPAND, 0)
self.SetSizer(sizer)
sizer.Fit(self)
self.Layout()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9044325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档