打开文件并创建新框架

时间:2014-05-04 13:29:05

标签: file wxpython frame

我想打开.py文件 - 我发现了 - 而不是从打开的文件运行新框架。这是文件MenuWindow中的代码:

def OnNewGame(self,event):
    play = False
    nameofplr = wx.GetTextFromUser('Enter your name:', 'NEW GAME')
    subor=open("Save/savegame.txt","a")
    subor.write( "\n" + nameofplr)
    subor.close()
    savegame=open("Save/" + nameofplr + ".prjct", "w+")
    savegame.close()
    play = True
    if (play == True):
        sys.path.insert(0, './bin')
        import game
        new = GameFrame(parent=None, id=-1)
        new.Show()
        self.Close()

这是来自game.py的代码:

    print "game.py opened"

导入wx

类GameFrame(wx.Frame):

def __init__(self,parent,id):

    wx.Frame.__init__(self, parent, id, "Project", size=(860, 640))
    wx.Frame.CenterOnScreen(self)

输出打印game.py打开所以它打开文件,但为什么它不创建新框架?
这是输出:

  

game.py打开了   追溯(最近的呼叫最后):
   OnNewGame中的文件“D:\ Python \ Python Projects \ Project \ MenuWindow.py”,第48行      new = GameFrame(parent = None,id = -1)
  NameError:未定义全局名称“GameFrame”

2 个答案:

答案 0 :(得分:0)

您导入游戏,GameFrame是游戏的一部分,因此您应该输入

new = game.GameFrame(parent=None, id=-1)

答案 1 :(得分:0)

我在互联网上搜索了大约2或3个小时并且没有任何效果,然后我在这里写问题并尝试修改我自己的代码并修复它!所以,如果有人会遇到同样的问题,那就是def OnNewGame的代码:

    def OnNewGame(self,event):
    play = False
    nameofplr = wx.GetTextFromUser('Enter your name:', 'NEW GAME')
    subor=open("Save/savegame.txt","a")
    subor.write( "\n" + nameofplr)
    subor.close()
    savegame=open("Save/" + nameofplr + ".prjct", "w+")
    savegame.close()
    play = True
    if (play == True):
        sys.path.insert(0, './bin')
        from game import GameFrame
        new = GameFrame(parent=None, id=-1)
        new.Show()
        self.Close()

这就是它的全部工作!!!