在Python3中,我从交互式shell运行以下命令:>>>importtkinter>>>type(tkinter.Tk())>>>type(tkinter.Toplevel())这两者都会创建单独的窗口。我假设tkinter.Tk()返回tkinter应用程序的“主”窗口,而任何其他窗口都应使用tkinter.Toplevel()创建。我注意到如果您关闭tkinter.Tk()的窗口,两个窗口都会关闭。此外,如果您调用tkinter.Toplevel()而没有调用tkinter.Tk(),则会创建两个窗口(其中一个是“主”窗口,关闭时,也将关闭Toplevel窗口)。这是准确的吗?
我有以下代码window=Tk()window.lift()window.attributes("-topmost",True)这段代码的工作原理在于它将我的Tkinter窗口显示在所有其他窗口之上,但它仍然只解决了一半的问题。虽然该窗口实际上显示在所有其他窗口之上,但该窗口没有焦点。有没有办法既让窗口成为Tkinter中最前面的窗口,又把焦点放在它上面? 最佳答案 如果focus_force()不起作用,您可以尝试这样做:window.after(1,lambda:window.focus_force())本质上是一样的,只是
我有一个Checkbutton和一个与之关联的IntVar对象,但是当我尝试获取var的值时,我收到了PY_VAR0.这是我的代码:fromtkinterimport*root=Tk()defshow_state():print(var)var=IntVar()cbtn=Checkbutton(root,text='Check',variable=var,command=show_state)cbtn.pack()root.mainloop()为什么我得到PY_VAR0? 最佳答案 var是对Tkinter.IntVar对象的引用。
我想在Text之后绑定(bind)自身事件小部件类绑定(bind),以便在调用我的绑定(bind)函数时更改小部件的文本。我的绑定(bind),例如self.text.bind("",self.callback),在文本小部件中的内容更改之前调用。 最佳答案 在您的情况下,打印值的绑定(bind)发生在类绑定(bind)之前,实际上是类绑定(bind)接收用户输入并将其放入小部件中。有几种方法可以解决这个问题。您可以绑定(bind)到而不是,或者您可以使用内置的条目验证功能在每次按键时调用您的代码。使用该解决方案,您将获得所需的所有
我正在用python实现一个基于GUI的文本编辑器。我已经显示了文本区域,但是当我尝试在Tkinter中使用asksaveasfile方法时,它显示文件已保存,但是当我尝试在我的桌面编辑器中打开相同的文件时,它给了我一个空白文件。仅创建并保存文件。它的内容不是。我想知道为什么。难道我做错了什么?这是我的代码:fromTkinterimport*importtkMessageBoximportTkinterimporttkFileDialogdefdonothing():print"a"deffile_save():name=asksaveasfile(mode='w',defaulte
我正在创建一个GUI来构建关于一个人的信息。我希望用户使用下拉栏选择他们的出生月份,并将月份配置为列表格式。fromtkinterimport*birth_month=['Jan','Feb','March','April']#etcdefclick():entered_text=entry.get()Data=Tk()Data.title('Data')#Titlelabel=Label(Data,text='Birthmonthselect:')label.grid(row=2,column=0,sticky=W)#Selecttitle如何创建下拉列表来显示月份?
我想知道如何根据某些模式改变某些单词和表达的样式。我正在使用Tkinter.Text小部件,但我不确定如何做这样的事情(文本编辑器中语法突出显示的相同想法)。我不确定这是否是用于此目的的正确小部件。 最佳答案 它是用于这些目的的正确小部件。基本概念是,您将属性分配给标签,并将标签应用于小部件中的文本范围。您可以使用文本小部件的search命令查找与您的模式匹配的字符串,这将返回足够的信息,将标签应用于匹配的范围。有关如何将标签应用于文本的示例,请参阅我对问题AdvancedTkintertextbox?的回答.这并不是您想要做的,但
有效但是没有。我无法在python中绑定(bind)ctrl+/。是否有所有可能的key的文档? 最佳答案 使用:defquit(event):print"youpressedcontrol-forwardslash"root.quit()root=tk.Tk()root.bind('',quit)#forward-slash#root.bind('',quit)#backslashroot.mainloop()我没有指向这些事件名称的完整列表的链接。这是我收集的部分列表:|event|name||Ctrl-c|Control-c|
听说Python的线程不好处理,和tkinter比较纠结。我有以下问题。我有两个类,一个用于GUI,另一个用于无限进程。首先,我启动GUI类,然后是无限进程类。我希望当您关闭GUI时,它也会结束无限进程并且程序结束。代码的简化版本如下:importtime,threadingfromtkinterimport*fromtkinterimportmessageboxfinish=FalseclasstkinterGUI(threading.Thread):def__init__(self):threading.Thread.__init__(self)defrun(self):globa
我在Tkinter中制作界面,我需要自定义字体。不仅仅是,比如说,特定大小的Helvetica字体,而是任何给定平台上通常可用的字体以外的字体。这将作为图像文件或(最好)Truetype字体文件或类似文件与程序一起保存。我不想在每台要使用该程序的机器上都安装所需的字体,我只想将它们与程序放在同一目录中。tkFont模块看起来应该做这样的事情,但我看不出它会在哪里为运行该程序的系统通常无法访问的字体获取文件名。预先感谢您的帮助。 最佳答案 有一种方法可以将外部字体导入Windows上的Tkinter。完成这项工作的关键代码是以下函数: