這兩個函數的主要區別是什麼?.pack()和.place()之間的差異並將它們一起使用?
我目前正在研究一個包含畫布和標籤的程序,後者表現爲一個按鈕。現在,使用.pack()放置畫布,而使用.place()作爲標籤。此外,該程序會讀取並使用鼠標點擊的位置來執行某些操作。
目前有一個錯誤導致程序在單擊標籤時觸發意外動作,單擊標籤時鼠標單擊的x和y座標不在引用窗口中時我感到驚訝(正如我所期望的它是),而是標籤的左上角座標。
有沒有一種方法來設置它,使標籤不會修改其中的鼠標點擊的x和y座標?
我對python比較陌生,這是我用tkinter製作的第一個項目。如果需要,我可以根據要求提供代碼。
編輯:整個程序可以找到here。標籤從第87行開始添加:
newgame_Label = Label(parent, anchor=NW, font="Calibri",
text="New Game")
newgame_Label.bind("<Button 1>", self.newgame_Click)
newgame_Label.place(x=450, y=300)
reset_Label = Label(parent, anchor=NW, font="Calibri",
text="Reset Board")
reset_Label.bind("<Button 1>", self.reset_Click)
reset_Label.place(x=450, y=400)
函數initBoard在畫布上調用.pack()方法。該程序是Light's Out的克隆,認爲這將是學習python和tkinter的好方法。
或者我可以不使用標籤,只是使用create_text方法可用於畫布小部件,但這需要一些解決方法來確定它是否已被點擊。大多數人想知道爲什麼Label Widget的.place()雖然共享相同的框架,但它的行爲方式與事件相同。
第一:你能告訴我們你的代碼嗎?第二:對於這個簡單的例子,你絕對應該使用'grid'幾何管理器:[GRID](http://effbot.org/tkinterbook/grid.htm)。 –
已添加,請檢查編輯。如果我決定使用網格,我可以重疊一個畫布和標籤沒有任何問題? – diverges