У меня есть приложение, которое вызывает другой скрипт при нажатии на кнопку.В этом сценарии у меня есть несколько отпечатков, которые я хотел бы отобразить в виджете wx.TextCtrl в приложении, но я не знаю, с чего начать.
Это пример сценария с именем:
#export.py
def exportData():
#some code
#Some prints that I would like to display on the application
А вот как я вызываю скрипт из приложения:
def loadData(self, event):
from export import exportData
exportData()
У меня есть несколько вопросов:
- Я предполагаю, что печать не будет работать какжурнал, и я должен использовать какую-то систему журналирования.Это верно?Я пытался использовать log.write, но получаю сообщение «ошибка журнала не определена».
- Возможно, вызов exportData () напрямую из def loadData - не лучший способ продолжить.Если это так, каков правильный путь?
- Наконец, как я могу отобразить распечатки / логи в виджете wx.TextCtrl приложения?
Не стесняйтесьесли вам нужно больше информации.Заранее благодарю за помощь.
РЕДАКТИРОВАТЬ
Вот минималистичный рабочий пример кода того, что я пытаюсь сделать.Печать «Это мой журнал» в main.py TextCtrl.
# main.py
import wx, sys
import export
class Test(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "Frame aka Window", size=(300, 200))
panel = wx.Panel(self)
log = wx.TextCtrl(panel, style=wx.TE_MULTILINE|wx.TE_READONLY)
button = wx.Button(panel, label="Export", pos=(80, 80), size=(120, 30))
self.Bind(wx.EVT_BUTTON, self.export, button)
mySizer = wx.BoxSizer(wx.VERTICAL)
mySizer.Add(button, 0, wx.ALL | wx.ALIGN_CENTER, 5)
mySizer.Add(log, 0, wx.ALL | wx.ALIGN_CENTER, 5)
panel.SetSizer(mySizer)
def export(self, event):
from export import exportData
exportData()
if __name__ == '__main__':
app = wx.App()
frame = Test(parent=None, id=1)
frame.Show()
app.MainLoop()
и в файле экспорта:
#export.py
def exportData():
print("This is my log")