当前位置: 首页 > 知识库问答 >
问题:

tkinter:如何在窗口之间“naviguate”

濮阳耀
2023-03-14

在这个新窗口中,我找不到一种方法来确保打印标签,或者实际播放游戏是在my_window中完成的??

在下面的代码中,我用函数launch_the_game中的标签(label(my_window,text=“game_num value”+str(game_num)).grid(行=5,列=0)来模拟它。这个标签是在root中打印的,而不是在my_window中打印的,这是怎么回事呢?

我不是在叫窗户吗?还是创造他们对吗?谢谢你

from tkinter import *

def launch_the_game():
        global my_window
        global game_num

        Label(my_window, text = "game_num value"  + str(game_num)).pack()
        
def open_new_window(game_num,game_name, dimensions, game_rule):
    global my_window

    my_window = Toplevel()
    my_window.title(game_name)
    my_window.geometry(dimensions)
    Label(my_window, text = "" + game_rule).grid( row = 3, column = 0)
    Button(my_window, text = "LAUNCH " + game_name, command= launch_the_game ) .grid( row = 4, column = 0) 


def assign_game(value):

    global game_name
    global dimensions
    global game_rule
    global game_num
    global my_window
    
    game_num = value

    if value  == 1:
        game_name  = "Guess my number"
        dimensions = "400x600"
        game_rule = " guess a number between 0 and 100"
        game_num = str(value)

    my_window=open_new_window(game_num,game_name, dimensions, game_rule)

    
def my_click_name_UI():

    btn1 = Button(root, text="Guess my number", command= lambda *args: assign_game(1)).pack()
    btn2 = Button(root, text="Guess my name", command= lambda *args: assign_game(2)).pack()

        
root = Tk(className =' Best game ever ! ')
root.geometry("450x150")
root.configure(bg="light blue")
btn3 = Button(root, text="Go play the games!", command=my_click_name_UI)
btn3.pack()

mainloop()

共有1个答案

马胜泫
2023-03-14

我的朋友发现了问题。我正在分配my_window=open_new_window....返回“blank”,而blank可能是=root。2种固定方法。一个是

        game_name  = "Guess my number"
        dimensions = "400x600"
        game_rule = " guess a number between 0 and 100"
        game_num = str(value)

  open_new_window(game_num,game_name, dimensions, game_rule)

    global my_window

    my_window = Toplevel()
    my_window.title(game_name)
    my_window.geometry(dimensions)
    Label(my_window, text = "" + game_rule).grid( row = 3, column = 0)
    Button(my_window, text = "LAUNCH " + game_name, command= launch_the_game ) .grid( row = 4, column = 0) 
    return my_window

这两种情况下都是有效的。他还告诉我开始学习什么是类,并正确地编写代码,以便于阅读;)

 类似资料:
  • 问题内容: 我将Python 2与和一起使用,然后使用。 该程序运行良好,但是每次打开该程序时,窗口都会显示为隐藏状态,因此,直到我单击扩展坞上的图标以将其打开时,该窗口才会出现。 有什么方法可以控制此,使该窗口位于应用程序启动时打开的其他窗口之上? 需要澄清的是,在应用程序运行的整个过程中,它不一定都位于最前面。我只需要它在启动时位于其他窗口之上。 问题答案: 如果我接受您提供的代码并添加第一行

  • 我正在使用Pygame模块制作一个简单的游戏。我需要Tkinter窗口与Pygame窗口一起打开。 每当我试图打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。 现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。 我该怎么做呢?我真的很感激这里的帮助。谢谢你!

  • 主要内容:创建一个空白窗口,设置窗的位置主窗口控件(window)是一切控件的基础,它好比是一台高速运转的机器,而其他控件则相当于这台机器上的部件,比如齿轮、链条、螺丝等等。由此我们知道,主窗口是一切控件的基础,所有的控件的都需要通过主窗口来显示。 Tkinter 提供了一些关于主窗口对象的常用方法,在本节对这些方法做简单的介绍。 创建一个空白窗口 Tkinter 能够很方便地创建一个空白窗口,示例代码如下: 程序运行结果如下: 图1:

  • 问题内容: 我想知道是否有人想知道为什么在按下GUI上的按钮后,下面的代码为什么不显示带有线的图形。我想创建一个程序,该程序在通过单击按钮导入一组数据后执行一长串命令。这些命令之一将是在同一窗口内的图形上显示光谱数据。这是我到目前为止的内容: 问题答案: 那是因为xaxis和yaxis的范围不会更改为新数据的范围,因此请更改您的refreshFigure,如下所示:

  • 所以我正在用pygame做一个游戏,我也想用tkinter。我在tkinter窗口中嵌入了一个pygame窗口,但我似乎什么都做不了。 对于上下文,以下是完整的代码: 当我使用时,什么都不会发生。在类中使用pyplay是有效的,但是在我更复杂的游戏中,为所有变量使用self.variable似乎是不必要的。 如何在window类之外的pygame窗口中运行代码?

  • 我尝试了各种方法来关闭我在互联网上可以找到的tkinter窗口。我问这个问题的唯一原因是,尽管已经被问了很多次,我仍然无法让它起作用。 基本上,我正在制作一个简单的“倒计时”游戏(就像电视节目一样),其中包括一个30秒的大倒计时。数字会正确地打勾,但是除非用户手动关闭窗口,否则程序不会继续。显然,这首先违背了计时器的目的,但是我如何让它在我想要的时候自动关闭呢? 下面是一个不起作用的非常简单的示例