【问题标题】:wxpython: wx.Window DefaultSizewxpython: wx.Window DefaultSize
【发布时间】:2022-01-24 21:07:20
【问题描述】:

专家:

大家如何避免这种情况?

情况: 使用以下 wxpython 脚本,

self.label = wx.StaticText(self, -1, "Blah Blah")

文本“Blah Blah”显示不正确。只显示了一部分。

事实证明,下面的脚本是正确的。

self.label = wx.StaticText(self, -1, "Blah Blah", size=(300,20))

我花了将近一周的时间才到达下一页。

wx.Window 读取“如果找不到合适的大小,则窗口将被调整为 20x20 像素,以便窗口可见但显然大小不正确。”

任何评论将不胜感激。

【问题讨论】:

    标签: wxpython size


    【解决方案1】:

    您没有显示任何代码,因此我们不知道您的问题的背景。

    在框架和尺寸器上使用面板,(即recommended way of structuring a wxPython application,标签显示正确

    import wx
    
    
    class MainFrame(wx.Frame):
        def __init__(self, *args, **kwargs):
            super().__init__(None, *args, **kwargs)
            self.title_text = 'Wx App'
    
            self.panel = MainPanel(self)
            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.panel)
            self.SetSizer(sizer)
            self.Center()
            self.Show()
    
    
    class MainPanel(wx.Panel):
        def __init__(self, parent, *args, **kwargs):
            super().__init__(parent, *args, **kwargs)
    
            self.label = wx.StaticText(self, -1, "Blah Blah")
    
            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.label)
            self.SetSizer(sizer)
    
    
    if __name__ == '__main__':
        wx_app = wx.App()
        MainFrame()
        wx_app.MainLoop()
    

    【讨论】:

    • 感谢您的帖子。是的,您的代码有效。是的,我应该发布有问题的代码。它是其他人的长脚本的一部分。是的,我修剪得太多了。并排比较表明我的代码中缺少 super()。我的代码中还存在许多其他行。我需要弄清楚要修剪多少。
    • 我很高兴能提供帮助。如果它解决了您的问题,请接受答案,如果它有助于加深您对问题的理解,您可以将答案标记为有用
    • 我很遗憾,但我仍然无法在我的原始代码中查明问题。找到后我会更新。
    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多