为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 wxPython 会剪切我的布局/窗口的某些部分?

为什么 wxPython 会剪切我的布局/窗口的某些部分?

PIPIONE 2022-11-01 15:59:14
我有一个wyPython应用程序,它呈现从wx.Frame. 该 GUI 窗口由一个用于渲染图像的滚动窗格 ( wx.StaticBitmap)、一个用于某些输入行的面板以及另一个用于某些信息或文本行的面板组成。一切正常,这是窗口应该是什么样子的屏幕截图(来自我的最小工作示例,见下文):特别注意窗口的底部,您可以在其中找到四个文本行 - 一切都符合预期。但是,当我现在为位图面板设置最小高度时,下面的文本面板的下部会被剪切或剪裁,如下所示:当我将变量设置MIN_IMAGE_SCROLL_AREA_HEIGHT为600then 它工作正常,但是当设置为700我遇到这种有问题的行为。但是我在我的代码中没有看到问题,你能帮我吗?这是一个完全工作的最小示例:import wximport wx.gridimport wx.lib.intctrlimport wx.lib.inspectionimport wx.lib.scrolledpanelclass TestApp(wx.Frame):    DEF_IMAGE_SIZE = 800    MIN_IMAGE_SCROLL_AREA_HEIGHT = 700  # with 600 it works correctly    def __init__(self):        super(TestApp, self).__init__(None, title="wxPython Test", style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)        self.init_panel()        self.Center()        self.Show()    def init_panel(self):        self.main_panel = wx.Panel(self)        self.bitmaps_panel = wx.lib.scrolledpanel.ScrolledPanel(self.main_panel)        self.bitmaps_panel.SetMinSize((-1, self.MIN_IMAGE_SCROLL_AREA_HEIGHT))        self.bitmaps_panel.SetBackgroundColour("black")        self.main_sizer = wx.BoxSizer(wx.VERTICAL)        self.main_panel.SetSizer(self.main_sizer)        self.bitmaps_sizer = wx.BoxSizer(wx.VERTICAL)        self.bitmaps_panel.SetSizer(self.bitmaps_sizer)        bitmap = wx.Bitmap(wx.Image(self.DEF_IMAGE_SIZE, self.DEF_IMAGE_SIZE))        self.bitmaps_sizer.Add(wx.StaticBitmap(self.bitmaps_panel, wx.ID_ANY, bitmap))        self.bitmaps_sizer.Fit(self)        self.main_sizer.Add(self.bitmaps_panel, 0, flag=wx.EXPAND)        self.main_sizer.AddSpacer(5)        self.main_sizer.Add(wx.StaticLine(self.main_panel, wx.ID_ANY, size=(self.DEF_IMAGE_SIZE + 30, 1)))        self.main_sizer.AddSpacer(10)
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

反转布局和拟合似乎可以在 Linux 下使用 wxPython 4.1.0

替换来修复它


self.main_sizer.Fit(self)

self.main_panel.Layout()

和:


self.main_panel.Layout()

self.main_panel.Fit()

似乎完成了这项工作。

//img1.sycdn.imooc.com//6360d20e0001d07b03900447.jpg

注意:您在面板级别使用sizer,而不是在框架级别,即self,当涉及到fitting窗口(框架)时,这本身就会导致问题。



查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信