tkinter messagebox阻止输入小部件工作

2024-06-25 22:44:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,它有一个消息框来指导用户。但在我关闭消息框后,我无法进入条目小部件。 有人知道问题出在哪里吗

我的代码:

from tkinter import *
import random
import tkinter.messagebox

class Application(Frame):
    """ GUI aplication hoger of lager"""
    def __init__(self,master):
        """Instaleerd het Frame"""
        super(Application, self).__init__(master)
        self.grid()
        rarara=0;aantal=0;max_pogingen=10;ikdenkaan=random.randrange(1,100)
        self.main()

    def welkom(self):
        """Create Widgets voor het spelletje hoger of lager"""
        #Verwelkomingslebels en instructielabels
        msgb=tkinter.messagebox.showinfo("uitleg",
                                         "Welkom bij het spelletje'hoger of lager'.\nIk heb zojuist aan een getal tussen 1 en 100 gedacht.\nJij mag dat getal raden en je hebt 10 pogingen."
                                         )

    def labels(self):
        #ik denk aan label
        Label(self,
              text="Ik denk aan:"
              ).grid(row=0,column=0,sticky=W)


    def welkgetal(self):
        rarara=Entry(self)
        rarara.grid(row=0, column=1,sticky=W)
        rarara.configure(state="normal")


    def main(self):
        self.welkom()
        self.labels()
        self.welkgetal()

root=Tk()
root.title("Hoger of lager")
root.geometry("350x280+533+244")
app=Application(root)
root.mainloop()

Tags: ofimportself消息applicationtkinterdefroot
1条回答
网友
1楼 · 发布于 2024-06-25 22:44:01

对于事件处理,Tk模态窗口的行为似乎非常奇怪:

[0]Python tkinter: stopping event propagation in text widgets tags

[1]http://tiku.io/questions/3361808/python-tkinter-bind-breaking

修复方法:

class Application(Frame):
    """ GUI aplication hoger of lager"""
    def __init__(self,master):
        """Instaleerd het Frame"""
        super(Application, self).__init__(master)
        self.grid()
        rarara=0;aantal=0;max_pogingen=10;ikdenkaan=random.randrange(1,100)
        self.main()
        master.after(1, self.welkom)

    def main(self):
        self.labels()
        self.welkgetal()

我不知道为什么,但它起作用了

相关问题 更多 >