微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

wxPython方法冻结将小部件变黑

如何解决wxPython方法冻结将小部件变黑

Centos 7.4, Python 3.6.8, wxPython 4.1.0

import wx
app = wx.App()
myFrame = wx.Frame(None,title="")
myPanel = wx.Panel(myFrame)
myStaticText = wx.StaticText(myPanel,label="Hello World")
mySizer = wx.BoxSizer(wx.VERTICAL)
mySizer.Add(myStaticText,wx.SizerFlags().Center())
myPanel.SetSizer(mySizer)
myFrame.Show()
#myFrame.Freeze()
app.MainLoop()

在运行上述代码时,将出现一个小部件,其中显示文本“ Hello World”。但是,如果代码在注释行未注释的情况下运行,则会显示一个全黑的小部件。为什么此Freeze调用会更改小部件的显示?冻结应该防止对小部件显示进行任何更新。

依赖关系:gtk3-devel,libXtst-devel,libtiff-devel,gcc gcc-c ++ epel-release,libglu-devel

解决方法

Freeze()应该在重复修改窗口小部件时暂时抑制更新显示,以避免不必要的中间刷新和闪烁,但是窗口小部件必须解冻,以便最终正确重绘。就像您观察到的那样,将其保持冻结状态将阻止对其进行更新。

通常,您很少需要使用此方法。这是一种优化,绝对不是您必须使用的东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。