首页 > 解决方案 > tkinter框架内的网格?

问题描述

我正在尝试在 python tinker 中构建一个网格结构,该网格结构彼此放在一边,中间没有任何可用空间,但我不知何故无法实现这一点。

谁能帮助我做错了什么?

这是代码。

import tkinter as tk


window = tk.Tk()

window.geometry("700x600")
frame1=tk.Frame(window,width=350,height=400,bg='black')
frame1.grid(row=0,column=0,rowspan=1,columnspan=1)


frame2=tk.Frame(window,width=350,height=600,bg='white')
frame2.grid(row=0,column=1)

frame3=tk.Frame(window,width=350,height=200,bg='red')
frame3.grid(row=1,column=0,rowspan=1,columnspan=1)


window.mainloop()

在此处输入图像描述

这是我得到的输出,虽然我想要的是黑框和红框之间没有任何间隙,所以总高度仍然是 600。

标签: pythontkinter

解决方案


问题是因为frame2第二列比frame1它的左边高。要解决此问题,只需指定它跨越frame1frame3占用的两行。

import tkinter as tk


window = tk.Tk()
window.geometry("700x600")

frame1=tk.Frame(window, width=350, height=400, bg='black')
frame1.grid(row=0, column=0, rowspan=1, columnspan=1)

frame2=tk.Frame(window, width=350, height=600, bg='white')
frame2.grid(row=0, column=1, rowspan=2)  # Added rowspan here.

frame3=tk.Frame(window, width=350, height=200, bg='red')
frame3.grid(row=1, column=0, rowspan=1, columnspan=1)

window.mainloop()

结果:

结果截图


推荐阅读