Using asyncio to read text file and load GUI - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Using asyncio to read text file and load GUI (/thread-6144.html) |
Using asyncio to read text file and load GUI - QueenSvetlana - Nov-08-2017 Goal: Using wxPython, load a combo box and read in a potentially huge text file to add to the list. I have a text file with the names parsed with commas that looks like this: Ann Marie,Smith,[email protected] The list could have over 100+ names in it. I left out the code that generates all the other GUI components to focus on loading the combobox and the items. import wx import asyncio class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(parent, title=title, size=(300, 200)) self.panel = wx.Panel(self) box = wx.BoxSizer(wx.VERTICAL) self.eventloop() box.Add(self.combo, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 5) box.AddStretchSpacer() self.panel.SetSizer(box) self.Centre() self.Show() #code to display and position GUI components left out async def readlist(self): filename = 'employees.txt' empList = [] with open(filename) as f_obj: for line in f_obj: empList.append(line) return empList async def managecombobox(self, loop): task = loop.create_task(self.readlist()) return_value = await task self.combo = wx.ComboBox(self.panel, choices=return_value) def eventloop(self): event_loop = asyncio.get_event_loop() try: event_loop.run_until_complete(self.managecombobox(event_loop)) finally: event_loop.close() def OnCombo(self, event): self.label.SetLabel("You selected" + self.combo.GetValue() + " from Combobox") app = wx.App() Mywin(None, 'ComboBox Demo') app.MainLoop()Questions:
RE: Using asyncio to read text file and load GUI - heiner55 - Nov-09-2017 A file with 100+ or 1000 names is a small file. I think you do not need async. |