Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我能';t将我的pyame游戏链接到tkinter GUI_Python_User Interface_Tkinter_Pygame - Fatal编程技术网

Python 我能';t将我的pyame游戏链接到tkinter GUI

Python 我能';t将我的pyame游戏链接到tkinter GUI,python,user-interface,tkinter,pygame,Python,User Interface,Tkinter,Pygame,基本上,我已经为我的游戏创建了一个pygame菜单,当我点击它们时,它将加载所有其他pygame窗口,但是对于添加用户等方面,我在Tkinter GUI中创建了。当我点击在我的pygame上加载它们时,它不会加载Tkinter GUI,有人知道我如何解决这个问题,或者我是否需要添加一些东西来使它工作吗 它的行为就像它要加载某个东西,但不加载。第一个名为“mathsvaders”的程序加载得很好,因为它是pygame程序,但最高分在tkinter中,不加载: pos = 1 while True:

基本上,我已经为我的游戏创建了一个pygame菜单,当我点击它们时,它将加载所有其他pygame窗口,但是对于添加用户等方面,我在Tkinter GUI中创建了。当我点击在我的pygame上加载它们时,它不会加载Tkinter GUI,有人知道我如何解决这个问题,或者我是否需要添加一些东西来使它工作吗


它的行为就像它要加载某个东西,但不加载。第一个名为“mathsvaders”的程序加载得很好,因为它是pygame程序,但最高分在tkinter中,不加载:

pos = 1
while True:
# events
for e in pygame.event.get():
    if e.type == pygame.QUIT:
        pygame.quit()
        sys.exit()
    elif e.type == pygame.KEYDOWN:
        if e.key == pygame.K_DOWN:
            pos += 1
            if pos > 5:
                pos = 1
        elif e.key == pygame.K_UP:
            pos -= 1
            if pos < 1:
                pos = 5
        elif e.key == pygame.K_RETURN:
            if pos == 1:
                import MathsvadersReal
            elif e.key == pygame.K_RETURN:
             if pos == 2:
                import Highscore
            elif pos == 5:
             pygame.quit()
             sys.exit()

当您要加载高分时,主代码导入
Highscore
模块,这有两个问题:

  • Highscore
    模块中,
    \uuuuu name\uuuuuu
    不等于
    “\uuuuu main\uuuuu”
    。它等于
    “高分”
    。因此,不会创建
    simpleapp\u tk
    app,也不会调用它的
    mainloop
    方法。 这可能是您遇到的问题,但这不是此代码的唯一问题

  • import
    语句将其结果缓存在
    sys.modules
    中,因此此代码只工作一次。要重新加载模块,必须通过调用
    reload(Highscore)
    del sys.modules[“Highscore”]


  • 这只是一个提示,如果你想得到别人的帮助,你应该展示一些代码示例。它的行为就像它要加载一些东西,但没有加载一样,第一个名为“MathVaders”的程序加载得很好,因为它是一个pygame程序,但最高分在tkinter中,没有加载:对不起,它的意思是说pos==2,但即使如此,它也不起作用。@SmithJr这段代码还不足以看出问题出在哪里,使用Tkinter函数的部分可能会更有帮助。我不能确定,因为它周围的代码可能会解决这个问题,但如果你仍然在while循环中,你很难维护Tkinter应用程序
    import Tkinter import Databaseconnector
    
     class simpleapp_tk(Tkinter.Tk):
        def __init__(self,parent):
            Tkinter.Tk.__init__(self,parent) 
            self.parent = parent
            self.initialize()
    
        def initialize(self):
          def create_widgets(self):
            # create welcome label
            label1 = Tkinter.Label(self, text = "Hello world")
            label1.grid(row = 0, column = 2, columnspan = 4, sticky = 'E')
    
    if __name__ == "__main__":
        app = simpleapp_tk(None)
        app.title('my application')
        app.geometry("250x200")
        app.mainloop()