草庐IT

python - 如何在 tkinter 中创建一个自调整大小的按钮网格?

我正在尝试使用Tkinter创建一个按钮网格(以实现可点击的单元格效果)。我的主要问题是我无法使grid和按钮自动调整大小并适合父窗口。例如,当我在网格上有大量按钮时,我没有缩小按钮以使网格适合窗口内部,而是得到一个超出屏幕的拉伸(stretch)框架。我正在寻找的效果是网格填充所有可用空间,然后调整其单元格的大小以适应该空间。我已阅读文档,但我仍然无法弄清楚如何使其工作。这是我的出发点的基本代码:def__init__(self):root=Tk()frame=Frame(root)frame.grid()#somewidgetsgetaddedinthefirst6rowsofth

python - 如何在 Tkinter 的屏幕上将窗口居中?

我正在尝试将tkinter窗口居中。我知道我可以通过编程方式获取窗口的大小和屏幕的大小,并使用它来设置几何图形,但我想知道是否有更简单的方法可以让窗口在屏幕上居中。 最佳答案 最简单(但可能不准确)的方法是使用tk::PlaceWindow,取pathname作为参数的顶级窗口。主窗口的路径名是.importtkinterroot=tkinter.Tk()root.eval('tk::PlaceWindow.center')second_win=tkinter.Toplevel(root)root.eval(f'tk::PlaceW

python - 如何让 Tkinter 窗口跳到前面?

如何让Tkinter应用程序跳转到前面?目前,该窗口出现在我所有其他窗口的后面并且没有获得焦点。有什么我应该调用的方法吗? 最佳答案 假设您说“我的其他窗口”时指的是您的应用程序窗口,您可以在Toplevel或Tk上使用lift()方法:root.lift()如果您希望窗口保持在所有其他窗口之上,请使用:root.attributes("-topmost",True)root是您的Toplevel或Tk。别忘了"topmost"前面的-!要使其临时,请在以下之后禁用最上面:defraise_above_all(window):win

python - 框架的tkinter滚动条

我的目标是在其中包含多个标签的框架中添加一个垂直滚动条。框架内的标签超过框架高度后,滚动条应自动启用。经过搜索,我发现this有用的帖子。根据那篇文章,我明白为了实现我想要的,(如果我错了,请纠正我,我是初学者)我必须先创建一个Frame,然后在该框架内创建一个Canvas并将滚动条粘贴到那个框架也是如此。之后,创建另一个帧并将其作为窗口对象放入Canvas中。所以,我终于想到了:fromTkinterimport*defdata():foriinrange(50):Label(frame,text=i).grid(row=i,column=0)Label(frame,text="my

python - python中使用Tkinter编辑标题栏

我正在尝试向窗口添加自定义标题,但我遇到了问题。我知道我的代码不正确,但是当我运行它时,它会创建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

python - 如何摆脱 Python Tkinter 根窗口?

您知道隐藏或以任何其他方式摆脱由Tk()打开的根窗口的巧妙方法吗?我只想使用普通对话框。我应该跳过对话框并将所有组件放在根窗口中吗?这是可能的还是可取的?还是有更智能的解决方案? 最佳答案 可能绝大多数基于tk的应用程序都将所有组件放置在默认根窗口中。这是最方便的方法,因为它已经存在。选择隐藏默认窗口并创建自己的窗口是一件非常好的事情,尽管它只需要一点点额外的工作。要回答有关如何隐藏它的具体问题,请使用withdraw根窗口的方法:importTkinterastkroot=tk.Tk()root.withdraw()如果您想让窗口

python - 在 tkinter 中交互式验证条目小部件内容

在tkinterEntry小部件中交互式验证内容的推荐技术是什么?我已阅读有关使用validate=True和validatecommand=command的帖子,这些功能似乎受到限制,即如果validatecommand命令更新Entry小部件的值。鉴于这种行为,我们是否应该绑定(bind)KeyPress、Cut和Paste事件并监控/更新我们的Entry小部件的值(value)通过这些事件?(以及我可能错过的其他相关事件?)或者我们应该完全忘记交互式验证,只对FocusOut事件进行验证? 最佳答案 正确答案是,使用小部件的v

python - 如何从 Tkinter Text Widget 获取输入?

如何从Text小部件获取Tkinter输入?编辑我问这个问题是为了帮助其他有同样问题的人-那是没有示例代码的原因。这个问题困扰了我好几个小时,我用这个问题来教别人。请不要把它当作一个真正的问题来评价——答案才是最重要的。 最佳答案 要从文本框中获取Tkinter输入,您必须向普通的.get()函数添加更多属性。如果我们有一个文本框myText_Box,那么这就是检索其输入的方法。defretrieve_input():input=self.myText_Box.get("1.0",END)第一部分,"1.0"意味着输入应该从第一行,

python - 如何在 tkinter 中安排更新(f/e,更新时钟)?

我正在用Python的tkinter库编写一个程序。我的主要问题是我不知道如何创建timer或clock像hh:mm:ss。我需要它来更新自己(这就是我不知道该怎么做);当我在循环中使用time.sleep()时,整个GUI都会卡住。 最佳答案 Tkinter根窗口有一个名为after的方法,可用于安排在给定时间段后调用的函数。如果该函数本身调用after您已经设置了一个自动重复事件。这是一个工作示例:#forpython3.xuse'tkinter'ratherthan'Tkinter'importTkinterastkimpor

python - 在 tkinter 中的两个帧之间切换?

我已经用一个漂亮的小GUI构建了我的前几个脚本,正如教程向我展示的那样,但它们都没有解决如何处理更复杂的程序。如果您有一个带有“开始菜单”的东西,对于您的打开屏幕,并且在用户选择后您移动到程序的不同部分并适本地重新绘制屏幕,​​那么这样做的优雅方式是什么?是否只是.destroy()'开始菜单'框架,然后创建一个新的框架,其中填充了另一部分的小部件?并在他们按下返回按钮时反转这个过程? 最佳答案 一种方法是将框架堆叠在一起,然后您可以简单地按照堆叠顺序将一个框架提升到另一个之上。顶部的那个将是可见的。如果所有帧的大小都相同,则此方法