wxPython - 开始和结束BusyCursor

时间:2016-05-11 16:27:04

标签: wxpython

我的部分应用程序生成一个复杂的报告,需要一些时间来生成。由于这可能是几分钟,我想建立一个BusyCursor(),以确保人们正在发生的事情。我遇到的问题是我需要在一个模块中启动它并在另一个模块中结束它。这是因为它生成了许多报告,包括用于即时查看的PDF和另一个包含相关CSV文件以供后续使用的报告。

1 个答案:

答案 0 :(得分:1)

wxPython有类wx.StockCursor。该类可以创建自定义光标并设置为窗口区域。所有游标都可以在http://www.wxpython.org/docs/api/wx.Cursor-class.html

上找到

您可以使用此示例代码:

import wx

class TestFrame(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, None)
        self.SetBackgroundColour("#FFFFFF")
        self.rootSizer = wx.BoxSizer(wx.VERTICAL)

        self.rootSizer.Add((80, 80)) # Spacer
        self.buttonActive = wx.Button(self,-1,"Activate",size=(100,100))
        self.buttonActive.Bind(wx.EVT_BUTTON, self.OnActivate)
        self.rootSizer.Add(self.buttonActive,0,wx.ALIGN_CENTER)

        self.rootSizer.Add((80,80)) # Spacer
        self.buttonDisable = wx.Button(self,-1, "Disable", size=(100,100))
        self.buttonDisable.Bind(wx.EVT_BUTTON, self.OnDisabled)
        self.rootSizer.Add(self.buttonDisable,0,wx.ALIGN_CENTER)

        self.SetSizer(self.rootSizer)

    def OnActivate(self,evt):
        print "Activate"
        self.SetCursor(wx.StockCursor(wx.CURSOR_WAIT))

    def OnDisabled(self, evt):
        print "Disabled"
        self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))


if __name__ == '__main__':

    app = wx.App(None)
    frame = TestFrame(None)
    frame.Show()
    app.MainLoop()