【问题标题】:pop up a window with text in it and automatically close it after certain time弹出一个带有文本的窗口并在一定时间后自动关闭它
【发布时间】:2013-10-08 23:25:26
【问题描述】:

这是我写的代码。它确实关闭了窗口,但不显示其中的文本。我需要显示的文本,然后自动关闭窗口。 我应该进行哪些更改才能使其正常工作 谢谢

这里是代码

import wx
from time import sleep

class Frame(wx.Frame):
    def __init__(self, title):
        wx.Frame.__init__(self, None, title=title, size=(300,200))

        self.panel = wx.Panel(self)
        box = wx.BoxSizer(wx.VERTICAL)
        m_text = wx.StaticText(self.panel, -1, 'File Uploaded!')
        m_text.SetSize(m_text.GetBestSize())

        box.Add(m_text, 0, wx.ALL, 10)
        self.panel.SetSizer(box)
        self.panel.Layout()
        self.Bind(wx.EVT_ACTIVATE, self.onClose)

    def onClose(self, event):
        sleep(5)
        self.Destroy()

app = wx.App(redirect=True)
top = Frame('test')
top.Show()
app.MainLoop()

【问题讨论】:

标签: python wxpython


【解决方案1】:

我会推荐使用 wx.Timer。如果您使用 time.sleep(),您将阻塞 wxPython 的主循环,这会使您的应用程序无响应。以下是修改为使用计时器的代码:

import wx

class Frame(wx.Frame):
    def __init__(self, title):
        wx.Frame.__init__(self, None, title=title, size=(300,200))

        self.panel = wx.Panel(self)
        box = wx.BoxSizer(wx.VERTICAL)
        m_text = wx.StaticText(self.panel, -1, 'File Uploaded!')
        m_text.SetSize(m_text.GetBestSize())

        box.Add(m_text, 0, wx.ALL, 10)
        self.panel.SetSizer(box)
        self.panel.Layout()

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.onClose, self.timer)
        self.timer.Start(5000)

    def onClose(self, event):
        self.Close()

app = wx.App(redirect=True)
top = Frame('test')
top.Show()
app.MainLoop()

您可以在本文中阅读有关计时器的更多信息:

http://www.blog.pythonlibrary.org/2009/08/25/wxpython-using-wx-timers/

【讨论】:

    【解决方案2】:
    >>> import wx
    >>> import time
    >>> app = wx.App()
    >>> b = wx.BusyInfo('Upload Finished!')
    >>> time.sleep(5)
    >>> del b
    >>>
    

    【讨论】:

      猜你喜欢
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多