我正在使用 Tkinter 对 python 进行 GUI 编程。
我使用以下代码在我的 Tkinter 根窗口中创建 4 个帧(Frame1、Frame2、Frame3 和 Frame4):
import tkinter as tki
class App(object):
def __init__(self):
self.root = tki.Tk()
self.root.wm_title("Play With python")
for r in range(8):
self.root.rowconfigure(r, weight=1)
for c in range(2):
self.root.columnconfigure(c, weight=1)
# Create Frames
Frame1 = tki.Frame(self.root, borderwidth=1, bg = 'blue')
Frame1.grid(row = 0, column = 0, rowspan = 2, columnspan = 2, sticky = 'w, e, n, s')
Frame2 = tki.Frame(self.root, borderwidth=1, bg = 'blue')
Frame2.grid(row = 2, column = 0, rowspan = 2, columnspan = 2, sticky = 'w, e, n, s')
Frame3 = tki.Frame(self.root, borderwidth=1, bg = 'blue')
Frame3.grid(row = 4, column = 0, rowspan = 2, columnspan = 2, sticky = 'w, e, n, s')
Frame4 = tki.Frame(self.root, borderwidth=1, bg = 'blue')
Frame4.grid(row = 6, column = 0, rowspan = 2, columnspan = 2, sticky = 'w, e, n, s')
app = App()
app.root.mainloop()
我想使用for 循环来使我的代码可读,因为在我的真实代码中帧大约为 12。
我正在尝试以下代码以获得相同的输出:
import tkinter as tki
class App(object):
def __init__(self):
self.root = tki.Tk()
self.root.wm_title("Play With python")
for r in range(8):
self.root.rowconfigure(r, weight=1)
for c in range(2):
self.root.columnconfigure(c, weight=1)
# Create Frames
j = 0
for i in range(1,5):
Framei = tki.Frame(self.root, borderwidth=1, bg = 'blue')
Framei.grid(row = j, column = 0, rowspan = 2, columnspan = 2, sticky = 'w, e, n, s')
j = j + 2
app = App()
app.root.mainloop()
问题:
正如我所看到的问题,这段代码创建了 4 个帧,但与Framei具有相同的名称引用(而不是 Frame1、Frame2、Frame3 和 Frame4)。但我想要 4 个不同名称的独立框架(Frame1、Frame2、Frame3 和 Frame4)。
我知道我的问题与Run Time 的变量创建非常相关,但是当我第一次应用它时,所以面临问题。
我使用的 Python 版本是 3.0.1。
请帮忙...