我是Tkinter库的新手,我想知道当打开新窗口时如何禁用按钮。例如,如果单击主窗口上的按钮,将打开一个新窗口,并且主窗口上的所有按钮将被禁用。窗口关闭后,应重新启用按钮。
下面是我的代码示例:
from tkinter import *
root = Tk()
def z():
w = Toplevel()
bu = Button(w, text = "Click!", font = 'bold')
bu.pack()
b = Button(root, text = "Click!", command = z)
b.pack()
root.mainloop()
额外:如果有人能告诉我如何在不关闭整个“Tkinter”程序的情况下关闭“root”窗口,我将不胜感激。例如,如果一个辅助窗口打开,我希望能够关闭第一个窗口,或者至少最小化它。
欢迎来到Tkinter图书馆。
我知道你为什么要用w了,你可以用root,它就可以工作了。
from tkinter import *
root = Tk()
def z():
bu = Button(root, text = "Click!", font = 'bold')
bu.pack()
b = Button(root, text = "Click!", command = z)
b.pack()
root.mainloop()
问我你在python和tkinter方面有什么问题吗
你可以隐藏窗口
root.withdraw()
# or
root.iconify()
并再次展示
root.deiconify()
禁用按钮
b['state'] = 'disabled'
启用按钮
b['state'] = 'normal'
编辑:正如@acw1668在评论中指出的,当用户使用标题栏上的关闭按钮[X]时,需要win.protocol()
来运行close_second
import tkinter as tk # PEP8: `import *` is not preferred
#--- functions ---
def close_second():
win.destroy()
b['state'] = 'normal'
root.deiconify()
def open_second():
global win
b['state'] = 'disabled'
#root.iconify()
root.withdraw()
win = tk.Toplevel()
win_b = tk.Button(win, text="Close Second", command=close_second)
win_b.pack()
# run `close_second` when user used closing button [X] on title bar
win.protocol("WM_DELETE_WINDOW", close_second)
# --- main ---
root = tk.Tk()
b = tk.Button(root, text="Open Second", command=open_second)
b.pack()
root.mainloop()
作为我程序的一部分,我需要有一个按钮,当用户单击它时,它会打开一个新窗口。 嗯,我想我应该有一个类来创建框架并按按钮调用它。但我不知道该怎么开始。我刚刚在程序中找到了我的按钮,但它不起作用。有人能告诉我怎么做吗?或对其进行编码。
我有一个弹出窗口,里面有一个输入。弹出窗口的创建如下所示: 这一切都很有效,可以通过输入。当用户点击android手机上的后退按钮时,问题就出现了。后退按钮关闭弹出窗口。这不应该发生,因为用户的意图是在与弹出窗口进行交互之前无法继续。 现在,我们当然可以将弹出视图的焦点设置为,以禁止通过后退按钮解除:
作为Java的新手,多年的iOS和。NET的经验,我发现这是非常令人困惑。我想要的是一个非常简单的对话框(从主窗口调用),带有OK和Cancel按钮。单击“确定”时,它会执行一些操作,然后关闭对话框。单击“取消”时,它只会取消对话框。 然而,使用SWT shell对话框类来实现这一点并不明显。如何获得一个按钮来关闭对话框,并将执行返回到主窗口?
问题内容: 我遇到的情况是,单击按钮打开带有搜索结果的新浏览器窗口。 有什么方法可以连接并聚焦到新打开的浏览器窗口吗? 并使用它,然后返回到原始(第一个)窗口。 问题答案: 您可以在以下窗口之间切换:
我正在使用Pygame模块制作一个简单的游戏。我需要Tkinter窗口与Pygame窗口一起打开。 每当我试图打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。 现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。 我该怎么做呢?我真的很感激这里的帮助。谢谢你!