python - 如何根据全局变量是真还是假来显示 Tkinter 帧?
问题描述
我正在尝试使用 Tkinter 在 Python 中制作一个简单的图形记忆卡游戏。
为此,我想显示三个不同的页面。要在一个页面之间交换另一个页面,我使用 .tkraise() 来推动不同的框架以显示在窗口上。但是我无法显示 high_score_page (框架)。
我的想法是,通过使用一开始设置为 False 的全局变量“win”,当“win”变量为 True 时,我将显示 high_score_page。我为此使用了 if 语句。所以
if win is True: high_score_page(master)
前两页(“input_page”和“game_page”)显示得很好,但 high_score_page 不会显示。
你们对如何解决这个问题有任何想法吗?
感谢所有输入,谢谢:)
这是一些代码:
def input_page(master):
frame_start = Frame(master)
frame_start.grid(row=0, column=0, sticky="news")
label_input = Label(frame_start, text="How many rows would you like to have?:")
label_input.grid(row=0, column=0)
entry_rows = Entry(frame_start)
entry_rows.grid(row=0,column=1)
start = Button(frame_start, text="start", command=lambda: game_page(entry_rows.get(), master))
start.grid(row=1, column=0)
def game_page(entry, master):
global win
if win is True:
high_score_page(master)
print(win)
if win is False:
frame_game = Frame(master)
frame_game.grid(row=0, column=0, sticky="news")
rows = get_board_size(entry)
buttons = create_buttons(rows, frame_game)
place_buttons(frame_game, buttons)
frame_game.tkraise()
def high_score_page(master):
frame_high_score = Frame(master)
frame_high_score.grid(row=0, column=0, sticky="news")
name_entry = Label(frame_high_score, text="blablabla")
name_entry.grid(column=0, row=0)
frame_high_score.tkraise()
解决方案
推荐阅读
- tensorflow - 如何报告算法运行时间?
- c# - 如何为以编程方式创建的按钮赋予功能
- postgresql - 在 Amazon RDS (Postgres) 中查找未使用的表
- owin - 在 Web 窗体项目中发生挑战时,不会重定向到 SingleSignOnService 位置
- java - JMH - 为什么 JIT 不能消除我的死代码
- ios - 来自 webViewKit 按钮的用户权限单击
- android - 如何在 node.js 中使用套接字,以便使用 html 文件显式地分别响应客户端和管理员?
- package - 无法安装 twilio.AspNet mvc 包
- delphi - 任务栏上的图标不会移动到第二台显示器
- c# - 使用 pfx 文件加载证书