Posts: 544
Threads: 15
Joined: Oct 2016
Nov-23-2017, 04:03 PM
(This post was last modified: Nov-23-2017, 04:08 PM by Windspar.)
You can just us wx.lib.delayedresult startWorker
Here an example
import wx
from wx.lib.delayedresult import startWorker
import time
class HelloForm:
def __init__(self, *args, **kwargs):
self.frame = wx.Frame(*args, **kwargs)
self.panel = wx.Panel(self.frame)
self.gauge = wx.Gauge(self.panel, size=(300, 20))
# start thread
startWorker(self.end_gauge, self.start_gauge)
def start_gauge(self):
for x in range(101):
time.sleep(0.1)
# send command to wx event safe way
wx.CallAfter(self.gauge.SetValue, x)
def end_gauge(self, something):
self.gauge.SetValue(0)
if __name__ == '__main__':
app = wx.App()
hform = HelloForm(None, title='wxpython built in thread')
hform.frame.Show()
app.MainLoop()
99 percent of computer problems exists between chair and keyboard.