【问题标题】:Closing a tkinter Entry Widget without killing the program在不终止程序的情况下关闭 tkinter 条目小部件
【发布时间】:2017-06-01 01:10:38
【问题描述】:

我目前正在 python-course.eu 上逐步完成 tkinter 教程。是否可以在不终止程序的情况下关闭条目小部件?我想要做的是将 tkinter 输入框合并到一个 pygame 程序中,以便程序通过输入框询问玩家姓名,然后在输入文本后关闭。然后游戏应该继续。这可能吗?

我想做的是:

-创建一个pygame表面

-在该表面上打开一个 tkinter 条目小部件

-获取用户名

-关闭 tkinter 小部件

-使用 pygame 在包含用户名的表面上写入文本

让我感到困惑的是,python-course.eu 上的 tkinter 示例都以 mainloop() 语句结尾,而我希望 pygame 有一个事件循环,以便我可以扩展程序。我预计小部件的创建会在进入事件循环之前发生。这就是我卡住的地方:-(

【问题讨论】:

  • 我在 tkinter 方面的经验非常有限,而且没有人真的尝试将它与 pygame 结合使用,但我相信它们不能同时在同一个窗口中运行。我认为您可以运行一个 tkinter 窗口来提取用户数据,关闭它然后创建一个 pygame 窗口,但老实说我从未尝试过。显然这不会是最流畅的体验,可能有 pygame 用户输入模块会更有用。

标签: python-3.x tkinter widget pygame


【解决方案1】:

与其尝试在同一个窗口中混合使用两个 GUI 库,如果可以接受提示,您可以使用:

import tkinter as tk
from tkinter import simpledialog
root = tk.Tk() # needed to prevent extra window being created by dialog
root.withdraw() # hide window as not needed
username = simpledialog.askstring('Username', 'Enter username:')
root.destroy()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多