[prg] модуль wx в python
Приветствую, вопрос от чайника.
Есть такой код:
import requests
from bs4 import BeautifulSoup
import wx
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Список")
panel = wx.Panel(self, wx.ID_ANY)
self.index = 0
self.list_ctrl = wx.ListCtrl(panel, size=(-1,100),
style=wx.LC_REPORT
|wx.BORDER_SUNKEN
)
self.list_ctrl.InsertColumn(0, 'Статьи')
btn = wx.Button(panel, label="Обновить")
btn.Bind(wx.EVT_BUTTON, self.add_line)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.list_ctrl, 0, wx.ALL|wx.EXPAND, 5)
sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)
panel.SetSizer(sizer)
def add_line(self, event):
response = requests.get("https://xakep.ru")
page = response.text
soup = BeautifulSoup(page, 'html.parser')
headings = map(lambda e: e.text, soup.select("h3.entry-title a
span"))
for h in headings:
self.list_ctrl.InsertStringItem(self.index, h)
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm()
frame.Show()
app.MainLoop()
Функция add_line вызывается по нажатию кнопки. Подскажите, как эту
функцию вызвать при старте программы?
Спасибо!
Приветствую всех!
Вызвать, например, сразу после отображения фрейма:
...
frame.Show()
frame.add_line(None)
...
Можно, чтобы не было задержек перед запуском цикла обработки событий,
использовать: :
wx.CallLater(500, frame.add_line, None)
Успехов. Анатолий.