当前位置: 首页 > 面试题库 >

与tkinter同时使用.pack()和.grid()

窦涵忍
2023-03-14
问题内容

我有一个包含一些Label()小部件,一些Button()小部件,一些Text()小部件和一些Entry()小部件的程序。之前进行过两次修订,我没有标签,并且Entry()小部件较少,为了方便起见,我混合了.pack()和.grid(),这很好。我必须进行一些重构,并在此过程中添加了额外的小部件-
添加的所有新内容都使用.grid()。其他小部件没有任何变化。现在,我遇到了“无法在。中使用网格”等错误(如果需要,我可以发布完整的错误消息)。为什么,我该如何解决?(如有必要,我也可以发布代码。)


问题答案:

你不能混用grid,并pack与同一父控件。

为什么?因为grid将尝试布置小部件,所以可能会根据各种选项来增加或缩小小部件。接下来,pack将尝试根据其规则执行相同的操作。这可能需要更改窗口小部件的宽度或高度。

grid会看到小部件已更改大小,因此它将尝试根据其规则重新排列小部件。pack然后,您会注意到某些小部件已更改大小,因此它将根据其规则重新排列小部件。grid会看到小部件已更改大小,因此它将尝试根据其规则重新排列小部件。pack然后,您会注意到某些小部件已更改大小,因此它将根据其规则重新排列小部件。grid会看到…



 类似资料:
  • 我试图创建一个程序,它有一个tkinter窗口打开,然后当你按下一个按钮,它关闭tkinter窗口,打开一个pyplay窗口。然而,当我点击按钮打开pyplay窗口时,它会打开pyplay窗口,而tkinter窗口保持打开状态。 代码: 我还尝试使用: 我怎样才能解决这个问题?(我正在MacOS 11.1上运行Python 3.7.7)

  • 我想使用与GUI相结合。我是的新手,对它的理解不是很详细。这里的示例在单击第一个按钮时启动10个任务。这个任务只是在几秒钟内用来模拟工作。 示例代码在Python下运行良好。但问题是GUI被冻结了。当我按下第一个按钮并启动10个异步任务时,我不能在GUI中按下第二个按钮,直到所有任务都完成。图形用户界面永远不应该冻结——这是我的目标。 ...由于此错误,我无法再次运行该任务。 为什么多线程是一个可

  • 所以简而言之,我想做的是让一个带有发光二极管和图形用户界面的arduino显示存储在一个不断更新的json文件中的信息(它来自一个叫做精英危险的游戏)。 所以我使用看门狗来查看文件何时更新,然后读取新信息。然后我想使用tkinter来显示信息,例如:盒子改变颜色 但是问题是,当我使用tkinter时,mainloop()会停止其余代码的运行(我假设这是因为它是一个无限循环)。我对编程还是很陌生的,

  • 我有一个包含3种方法的服务类,服务类也使用一些@Autowired注释。在3种方法中,我想模拟两种方法,但对第三种方法使用真实方法。 问题是: < li >如果我将@Autowired与@Spy一起使用,所有三个real方法实现都将被调用。 < li >如果我只使用@Spy,对real方法的调用返回空指针,因为没有自动连线对象的初始化。

  • 我担心如果在logging.properties中使用相同的文件,log4j和logging.properties可能会导致性能和正确性问题。否则,我将需要为那些不希望在我的情况下创建不同的文件。有没有干净的方法

  • 我正在使用Pygame模块制作一个简单的游戏。我需要Tkinter窗口与Pygame窗口一起打开。 每当我试图打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。 现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。 我该怎么做呢?我真的很感激这里的帮助。谢谢你!