这只是一个简单的问题,但是当您使用粘滞标签时,标签是否不应该留在嵌套框架的内部?在我的代码中,它仅停留在父框架中。如果正常,您有解决办法吗?
我尝试查找文档,但是没有找到任何可以帮助的东西。
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Tk test")
root.geometry("800x800")
frame_1 = ttk.Frame(root, relief="sunken", height="400", width="400").grid(row=0, column=0, rowspan=1, columnspan=1)
frame_2 = ttk.Frame(frame_1, relief="sunken", height="200", width="200").grid(row=0, column=0, rowspan=1, columnspan=1)
label_1 = ttk.Label(frame_2, text="Text").grid(row=0, column=0, sticky="N, E")
root.mainloop()
预期结果:标签停留在嵌套在父框架内的框架内。 实际结果:它只停留在父框架内
答案 0 :(得分:1)
def kadane(arr):
if not arr:
return [] # corner case
maxi = wini = maxj = 0
maxseen = 0
winmax = 0 # max sum of window ends at winj
for winj in range(len(arr)):
if winmax + arr[winj] < arr[winj]:
winmax = arr[winj]
wini = winj
else:
winmax += arr[winj]
if winmax > maxseen:
maxi = wini
maxj = winj
return arr[maxi:maxj+1]
函数返回.grid(...)
。因此,当您这样做
None
您将frame_1 = ttk.Frame(root, relief="sunken", height="400", width="400").grid(row=0, column=0, rowspan=1, columnspan=1)
分配给None
。 frame_1
和frame_2
也是如此。
由于label_1
,呼叫frame_1 == None
实际上与ttk.Frame(frame_1, ...)
相同。因此,您没有传递母版,而母版默认为将根窗口作为母版。同样,创建ttk.Frame(None, ...)
也是如此。
解决方法是将小部件的创建和放置划分为两行:
label_1
答案 1 :(得分:-2)
在定义frame_1,frame_2和label_1的每一行的末尾添加.pack()