如何在Tkinter中以全屏模式显示框架?我看到了这段代码,非常有用……:>>>importTkinter>>>root=Tkinter.Tk()>>>root.overrideredirect(True)>>>root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(),root.winfo_screenheight()))...但是是否可以编辑代码,以便点击Esc自动使窗口“恢复”? 最佳答案 我想这就是你要找的东西:Tk.attributes("-fullscreen"
这是给我带来麻烦的代码。f=Frame(root,width=1000,bg="blue")f.pack(fill=X,expand=True)l=Label(f,text="hi",width=10,bg="red",fg="white")l.pack()如果我用Label注释掉行,Frame会以正确的宽度显示。但是,添加标签似乎会将框架缩小到标签的大小。有没有办法防止这种情况发生? 最佳答案 默认情况下,pack和grid都会缩小或放大小部件以适应其内容,这在99.9%的情况下都是您想要的。描述此功能的术语是几何传播。使用pac
当我使用以下方法绘制形状时:canvas.create_rectangle(10,10,50,50,color="green")Tkinter是否会跟踪它的创建事实?在我正在制作的一个简单游戏中,我的代码有一个Frame创建一堆矩形,然后绘制一个黑色的大矩形以清除屏幕,然后绘制另一组更新的矩形,等等。我是否在内存中创建了数千个矩形对象?我知道你可以将上面的代码分配给一个变量,但是如果我不这样做并且直接在Canvas上绘制,它会保留在内存中,还是只绘制像素,就像在HTML5Canvas中一样? 最佳答案 每个Canvas项目都是Tki
我正在尝试使用Tkinter创建一个按钮网格(以实现可点击的单元格效果)。我的主要问题是我无法使grid和按钮自动调整大小并适合父窗口。例如,当我在网格上有大量按钮时,我没有缩小按钮以使网格适合窗口内部,而是得到一个超出屏幕的拉伸(stretch)框架。我正在寻找的效果是网格填充所有可用空间,然后调整其单元格的大小以适应该空间。我已阅读文档,但我仍然无法弄清楚如何使其工作。这是我的出发点的基本代码:def__init__(self):root=Tk()frame=Frame(root)frame.grid()#somewidgetsgetaddedinthefirst6rowsofth
我正在尝试将tkinter窗口居中。我知道我可以通过编程方式获取窗口的大小和屏幕的大小,并使用它来设置几何图形,但我想知道是否有更简单的方法可以让窗口在屏幕上居中。 最佳答案 最简单(但可能不准确)的方法是使用tk::PlaceWindow,取pathname作为参数的顶级窗口。主窗口的路径名是.importtkinterroot=tkinter.Tk()root.eval('tk::PlaceWindow.center')second_win=tkinter.Toplevel(root)root.eval(f'tk::PlaceW
如何让Tkinter应用程序跳转到前面?目前,该窗口出现在我所有其他窗口的后面并且没有获得焦点。有什么我应该调用的方法吗? 最佳答案 假设您说“我的其他窗口”时指的是您的应用程序窗口,您可以在Toplevel或Tk上使用lift()方法:root.lift()如果您希望窗口保持在所有其他窗口之上,请使用:root.attributes("-topmost",True)root是您的Toplevel或Tk。别忘了"topmost"前面的-!要使其临时,请在以下之后禁用最上面:defraise_above_all(window):win
我的目标是在其中包含多个标签的框架中添加一个垂直滚动条。框架内的标签超过框架高度后,滚动条应自动启用。经过搜索,我发现this有用的帖子。根据那篇文章,我明白为了实现我想要的,(如果我错了,请纠正我,我是初学者)我必须先创建一个Frame,然后在该框架内创建一个Canvas并将滚动条粘贴到那个框架也是如此。之后,创建另一个帧并将其作为窗口对象放入Canvas中。所以,我终于想到了:fromTkinterimport*defdata():foriinrange(50):Label(frame,text=i).grid(row=i,column=0)Label(frame,text="my
我正在尝试向窗口添加自定义标题,但我遇到了问题。我知道我的代码不正确,但是当我运行它时,它会创建2个窗口,一个只有标题tk,另一个更大的窗口带有“SimpleProg”。如何使tk窗口具有标题“SimpleProg”而不是新的附加窗口。我不认为我应该有Tk()部分,因为当我在我的完整代码中有它时,会有一个错误fromtkinterimportTk,Button,Frame,Entry,ENDclassABC(Frame):def__init__(self,parent=None):Frame.__init__(self,parent)self.parent=parentself.pac
您知道隐藏或以任何其他方式摆脱由Tk()打开的根窗口的巧妙方法吗?我只想使用普通对话框。我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更智能的解决方案? 最佳答案 可能绝大多数基于tk的应用程序都将所有组件放置在默认根窗口中。这是最方便的方法,因为它已经存在。选择隐藏默认窗口并创建自己的窗口是一件非常好的事情,尽管它只需要一点点额外的工作。要回答有关如何隐藏它的具体问题,请使用withdraw根窗口的方法:importTkinterastkroot=tk.Tk()root.withdraw()如果您想让窗口
这个问题在这里已经有了答案:HowtopassargumentstoaButtoncommandinTkinter?(18个回答)关闭26天前。我的代码是:fromTkinterimport*admin=Tk()defbutton(an):print(an)print('het')b=Button(admin,text='as',command=button('hey'))b.pack()mainloop()按钮不起作用,它在没有我的命令的情况下打印“嘿”和“het”一次,然后,当我按下按钮时,什么也没有发生。 最佳答案 考虑这段代