gpt4 book ai didi

python - 快速 Tkinter 格式化问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:05 25 4
gpt4 key购买 nike

我有一堆这样的框架:

    +--+
| |
+-+--+-+
| |
+-+------+-+
| |
+----------+

但我希望他们是这样的:

        +--+
| |
+---+--+
| |
+---+------+
| |
+----------+

执行此操作的最佳方法是什么?

正在使用 pack,但无法让它们正常运行。由于某种原因,使用网格根本没有显示它们,我的程序挂起了

# Main script
root = Tk()
root.geometry('500x500')
for task in TaskList:
GuiTools.TaskBox.TaskBox(root, task)
root.mainloop() # program hangs from this line, to the point of having to use kill to close it



# Taskbox class
class Taskbox(master, task):
__init__(self)
self.TaskFrame = Frame(master, borderwidth=3, relief=RAISED)
. . .
Putting stuff in frame
. . .
self.TaskFrame.pack() # Gives result 1
#self.TaskFrame.grid(column=1, sticky='ne') # no display, causes hang

最佳答案

你几乎拥有它。在将小部件添加到窗口之前,您正在启动 mainloop,这将导致它们在 mainloop 完成之前不会被添加。当主循环结束时,窗口不再可用,因此添加它们将失败。

这是一个简单的示例,其中 3 个帧彼此重叠,就像您想要的那样:

import Tkinter

root = Tkinter.Tk()
frame_one = Tkinter.Frame(root, width="50", height="50", borderwidth=3, relief=Tkinter.RAISED)
frame_one.grid(row=0, column=0, sticky=Tkinter.E)

frame_two = Tkinter.Frame(root, width="100", height="100", borderwidth=3, relief=Tkinter.RAISED)
frame_two.grid(row=1, column=0, sticky=Tkinter.E)

frame_three = Tkinter.Frame(root, width="150", height="150", borderwidth=3, relief=Tkinter.RAISED)
frame_three.grid(row=2, column=0, sticky=Tkinter.E)

root.mainloop()

关于python - 快速 Tkinter 格式化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com