У меня есть большие сомнения, потому что мой сценарий не работает так, как должно быть.Итак, у меня есть простой основной файл с кнопкой, которая открывает пустую сетку (коды ниже).Проблема с этим кодом заключается в том, что он запускает reportWindow при первом запуске, но если я закрываю отчет и пытаюсь открыть его снова, я получаю сообщение об ошибке: NameError: имя 'TestFrame' не определено
IМы также удалили if __name__ == '__main__'
из последних строк reportWindow.py, потому что скрипт не работал с ним.Я попробовал if __name__ == 'main'
, так как он импортирован из main.py, но он тоже не сработал.
Пожалуйста, кто-нибудь может показать мне, как это должно быть сделано правильно?
Спасибо
main.py
import wx
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)
button = wx.Button(panel, label = "Exit", pos=(80, 80), size = (120,30))
self.Bind(wx.EVT_BUTTON, self.closebutton, button)
def closebutton(self,event):
from reportWindow import SimpleGrid
SimpleGrid(TestFrame, -1)
if __name__ == '__main__':
app = wx.App()
frame = Test(parent=None, id=1)
frame.Show()
app.MainLoop()
reportWindow.py
import wx
import wx.grid as gridlib
class SimpleGrid(gridlib.Grid): ##, mixins.GridAutoEditMixin):
def __init__(self, parent, log):
gridlib.Grid.__init__(self, parent, -1)
#[...Some code...]
class TestFrame(wx.Frame):
def __init__(self, parent, log):
wx.Frame.__init__(self, parent, 0, "Title", size=(1400,800))
self.grid = SimpleGrid(self, log)
#[...Some code...]
#if __name__ == '__main__':
import sys
from wx.lib.mixins.inspection import InspectableApp
app = InspectableApp(False)
frame = TestFrame(None, sys.stdout)
frame.Show(True)
#import wx.lib.inspection
#wx.lib.inspection.InspectionTool().Show()
app.MainLoop()