我正在使用Python和Tkinter,并且我想要来自其他工具包/语言的onchange事件的等效项。我想在用户更新某些小部件的状态时运行代码。在我的例子中,我有很多Entry、Checkbutton、Spinbox和Radiobutton小部件。每当这些更改中的任何一个更改时,我都想运行我的代码(在这种情况下,更新另一个面板上的文本框)。(请记住,用户可以使用鼠标或键盘与这些小部件进行交互,甚至可以使用Ctrl+V粘贴文本) 最佳答案 我认为正确的方法是在已分配给小部件的tkinter变量上使用trace。例如……importtk
这是一个非常简单的程序。importtkintertkinter.Button(None,text='button').pack()tkinter.mainloop()我希望这个程序向我显示如下图。但实际显示的是下图。当它在GUI上调整大小时,它似乎运行良好。在HighSierra中没有出现这个问题。我的环境如下:macOSMojave10.14python3.7.0你能给我一些建议吗?我在here上发现了同样的问题. 最佳答案 将外观更改为灯光模式为我解决了这个问题。要更改外观,请转到“设置”->“常规”->“外观”->“灯光模式
fromTkinterimport*app=Tk()text_field=Entry(app)text_field.pack()app.mainloop()我希望能够检查text_field当前是否被选中或获得焦点,以便我知道在用户按下enter时是否对其内容执行某些操作。 最佳答案 如果您只想在焦点位于条目小部件上时用户按下回车键时执行某些操作,只需将绑定(bind)添加到条目小部件即可。它只会在该小部件具有焦点时触发。例如:importtkinterastkroot=tk.Tk()e1=tk.Entry(root)e2=tk.E
一个。如下所示,在网格的第0行放置了一个小部件。self.a_button=Button(root,text="AButton")self.a_button.grid(row=0,column=1)并尝试在网格内的第2行放置另一个小部件。self.b_button=Button(root,text="BButton")self.b_button.grid(row=2,column=1)但是当我运行程序时,我没有看到小部件之间有任何空间,而是一个接一个地堆叠。那么,我该如何编程以允许放置在不同行中的两个小部件之间有空间?分享您的意见!! 最佳答案
我得到了这个Text小部件,我希望它能够使用网格几何管理器扩展并填充它的整个父级。根据我看过的例子,这个示例程序应该可以,可惜不行,展开窗口时,内容没有调整大小。fromTkinterimport*root=Tk()input_text_area=Text(root)input_text_area.grid(row=1,column=0,columnspan=4,sticky=W+E)input_text_area.configure(background='#4D4D4D')root.mainloop()感谢任何帮助就其值(value)而言,我在Python2.7(最新的2.x版本)
fromTkinterimport*importsocket,sysfromPILimportImage,ImageTkroot=Tk()root.title("WhoisTool")root.resizable(0,0)text=Text()text1=Text()image=Image.open("hacker2.png")photo=ImageTk.PhotoImage(image)label=Label(root,image=photo)label.pack()text1.config(width=15,height=1)text1.pack()defbutton1():s=s
我目前正在开发一种类似爬虫的程序,它将进入维基百科页面,并以其当前形式从页面中抓取引用资料。我想要一个允许用户输入维基百科页面的图形用户界面。我希望将输入附加到selectWikiPage变量,但到目前为止运气不佳。下面是我当前的代码。importrequestsfrombs4importBeautifulSoupimportrefromtkinterimport*#begintkinterguidefshow_entry_fields():print("WikipediaURL:%s"%(e1.get()))e1.delete(0,END)master=Tk()Label(maste
在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对象的引用。