我想構建一個非常簡單的GUI,在這種方式之前完成,從來沒有問題。現在,在Mac上,我似乎無法使其工作。爲什麼這個簡單的Python TK Gui編程需要100%的CPU
這是代碼
from Tkinter import *
class App:
def __init__(self, master):
# Gui Creation Block
frame = Frame(master, bd=2, relief=SUNKEN)
self.master = master
self.top = Frame(frame, height=150, width=700, relief=SUNKEN)
self.left = Frame(frame , height=400, width=200, relief=SUNKEN)
self.right = Frame(frame, height=400, width=500, relief=SUNKEN)
self.top.grid(row=0, column=0, columnspan=2)
self.left.grid(row=1, column=0)
self.right.grid(row=1, column=1)
# Sample Label
self.lbl = Label(frame, text="Log file locaction")
self.lbl.grid(row=0, column=0)
self.top.pack()
frame.pack()
# Run the programs
root = Tk()
app = App(root)
root.mainloop()
當我運行,CPU使用率焰火至100%,並保持在那裏,直到我硬殺傷的Python實例運行在那裏。如果我將標籤註釋掉,那不會發生。那麼這裏有什麼問題?
------更新-------
好吧,改變了文件定位器的事情啊,這是一個混亂的一個。並從頂部刪除包()解決了100%的CPU問題。
但是,它仍然不像我想要的那樣。
self.top = Frame(frame, bg="black", height=150, width=700, relief=SUNKEN)
self.left = Frame(frame , height=400, width=200, relief=SUNKEN)
self.right = Frame(frame, height=400, width=500, relief=SUNKEN)
應該建立3塊,我可以把其他小部件,但只要我添加第三個標籤,像這樣的;
# Sample Label
self.lbl = Label(self.top, text="Top")
self.lbl.pack()
# Sample Label
self.lbl2 = Label(self.left, text="Left")
self.lbl2.pack()
# Sample Label
self.lbl3 = Label(self.right, text="Right")
self.lbl3.pack()
它將我的整個應用調整到最小尺寸。 我錯在認爲內部小部件不會更改其父容器,或者我犯了另一個錯誤嗎?
pack,grid together?只使用網格方法! – dsgdfg
在'self.top'上使用pack和grid。 – Jkdc
Tkinter框架自動調整其大小以適應其內容,但有一種方法可以覆蓋該行爲。我會盡快發佈一些代碼。 –