gpt4 book ai didi

python - wxPython 更改鼠标光标以通知长时间运行的操作

转载 作者:太空狗 更新时间:2023-10-30 00:00:21 24 4
gpt4 key购买 nike

我正在构建一个 Python 程序,用于在远程网站上搜索内容。有时操作需要很多秒,我相信用户不会注意到状态栏消息“Search Operation in progress”。因此,我想更改鼠标光标以突出显示程序仍在等待结果。

这是我正在使用的方法:

def OnButtonSearchClick( self, event ):
"""
If there is text in the search text, launch a SearchOperation.
"""
searched_value = self.m_search_text.GetValue()

if not searched_value:
return

# clean eventual previous results
self.EnableButtons(False)
self.CleanSearchResults()

operations.SearchOperation(self.m_frame, searched_value)

我尝试了两种不同的方法,都在最后一行之前:

  • wx.BeginBusyCursor()
  • self.m_frame.SetCursor(wx.StockCursor(wx.CURSOR_WAIT))

它们都不起作用。

我在 GNU/Linux 下使用 KDE。这在 Gnome 下也不起作用

有什么提示吗?谢谢

最佳答案

我就此询问了 wxPython 的制造者 Robin Dunn,看起来这应该有效,但实际上无效。但是,如果您调用面板的 SetCursor(),它确实有效,或者有人告诉我。这是您可以尝试的示例:

import wx

########################################################################
class MyForm(wx.Frame):

#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Tutorial")

# Add a self.panel so it looks the correct on all platforms
self.panel = wx.Panel(self, wx.ID_ANY)

btn = wx.Button(self.panel, label="Change Cursor")
btn.Bind(wx.EVT_BUTTON, self.changeCursor)
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(btn)
self.panel.SetSizer(sizer)

#----------------------------------------------------------------------
def changeCursor(self, event):
""""""
myCursor= wx.StockCursor(wx.CURSOR_WAIT)
self.panel.SetCursor(myCursor)


#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm().Show()
app.MainLoop()

关于python - wxPython 更改鼠标光标以通知长时间运行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com