gpt4 book ai didi

python - 网格未按预期工作 python Tkinter

转载 作者:行者123 更新时间:2023-12-01 04:56:47 24 4
gpt4 key购买 nike

我正在开发一个程序,它可以制作棋盘布局。棋盘布局之间具有间距。但最近我遇到了一个问题,它阻止了网格将自身变成网格,并且所有帧都只进入第 0 行和第 0 列。

有人可以向我解释一下为什么它突然开始这样做吗?

 def fields(self):
frame_row = 0 #Frame row value
frame_column = 0 #Frame column value
row_count = 0

note_title = ""
note_sum = ""

for i in range(len(self.fileNames)):
fileName = self.fileNames[i]
fileTitle = open("Files/" + fileName, "r")
title = fileTitle.read()
fileTitle.close()

note_title = title[:20]
note_sum = title[:100]

self.bfr2.columnconfigure(frame_column, pad=10)
self.bfr2.rowconfigure(frame_row, pad=10)

self.frame = Frame(self.bfr2, bg="pink", width=229, height=105, cursor="hand2", name="frame") #This is the frame widget. That si ahving problems being positioned.
self.frame.grid(row=frame_row, column=frame_column)
self.frame.pack_propagate(False)

self.sum = Label(self.frame, text=note_sum.replace("\n", " "), width=32, height=5, anchor=NW, wraplength=230, justify=LEFT, name="summNote")
self.sum.pack(side=TOP, fill=X)
self.sum.pack_propagate(False)

self.x = Label(self.sum, text="X", bg="red", width=2)
self.x.pack(anchor=NE)

self.noteName = Label(self.frame, font=("Arial", 12), text=note_title.replace("\n", ""), anchor=W, bg="grey", name="noteName")
self.noteName.pack(side=TOP, fill=X)

frame_column = frame_column + 1
row_count = row_count + 1

if row_count == 2:
frame_row = frame_row + 1
frame_column = 0
row_count = 0

最佳答案

问题出在这一行中的 name 参数:

self.frame = Frame(self.bfr2, ..., name="frame") 

您正在创建三个框架,并为每个框架指定相同的名称。 Tkinter 在内部使用该名称作为小部件的名称。因此,您需要创建一个内部名称类似于 .bfr2.frame 的小部件。然后,您创建下一个小部件,名称也为 .bfr2.frame。这会导致原始小部件被销毁并替换为新小部件。起泡沫,冲洗,重复。

每次您使用相同的 name 参数在同一父级中创建一个小部件时,前一个具有相同名称的小部件将被销毁。

如果您想使用name参数,它对于每个小部件必须是唯一的。

关于python - 网格未按预期工作 python Tkinter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27197071/

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