【发布时间】:2017-10-25 12:05:32
【问题描述】:
数据库加载面板屏幕静态文本显示时模糊
你好,
我在加载屏幕上有一个奇怪的问题。问题是这样的:当我从一个主屏幕开始,然后当你点击“下一步”按钮时, 它进入数据库加载屏幕,完成后,它会在屏幕上打印数据库加载完成。
问题是加载屏幕文本由于某种原因模糊不清。另外,我发现如果你弹出一个消息对话框 框,显示加载文本...
在这个例子中,我实际上并没有加载到一个实际的数据库中。相反,我只是睡了七秒钟。
如果你对我所说的感到困惑,只需运行示例,你就会看到加载屏幕全乱了......
代码如下:
import wx
import time
class TextPanel(wx.Panel):
def __init__(self, parent, label):
self.__myParent = parent
wx.Panel.__init__(self, self.__myParent, size = (800, 800))
staticText = wx.StaticText(self, label = label)
class MainPanel(wx.Panel):
def __init__(self, parent):
self.__myParent = parent
wx.Panel.__init__(self, self.__myParent, size = (800, 800))
nextButton = wx.Button(self, label = 'Next')
nextButton.Bind(wx.EVT_BUTTON, self.__onNext)
def __onNext(self, event):
self.__myParent.onNextScreen()
class MainFrame(wx.Frame):
def __init__(self):
# Base contsructor.
wx.Frame.__init__(self, None, id = -1, title = 'Testing...', size = (800, 800))
self.__myMainPanel = MainPanel(self)
self.__myMainPanel.Show()
self.__myDatabase = TextPanel(self, 'Loading Data...')
self.__myDatabase.Hide()
self.__myFinalPanel = TextPanel(self, 'Database Loading Complete!')
self.__myFinalPanel.Hide()
def onNextScreen(self):
self.__myMainPanel.Hide()
self.__myDatabase.Show()
self.doDatabaseLoad()
self.__myDatabase.Hide()
self.__myFinalPanel.Show()
def doDatabaseLoad(self):
time.sleep(7) # before, this method would load data into a database...
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
frame.Show(True)
app.MainLoop()
print 'Exiting...'
【问题讨论】:
-
什么操作系统/工具包?什么版本?什么 wxPython/python 版本?
-
我正在使用 Python 2.7.13(64 位)和 wxPython 3.0.2.0
-
什么操作系统?什么版本?什么工具包?什么版本?
-
我正在运行 Windows 7 Professional SP1 x64。该工具包是 wx 版本 3.0.2.0
-
我刚刚注意到,如果您在静态文本对象上调用 SetLabel('label'),标签就会变得可见。这是为什么呢?
标签: python hide wxwidgets show