我知道如何阻止我的主tkinter視窗被調整大小。
self.mainWin.resizable(False,False)
但是,當我制作一個子視窗類時,我是這樣做的:
self.subWin = tk.Toplevel(parent.mainWin)
self.subWin.resizable(False,False)
這并沒有產生任何錯誤,但我仍然可以調整子視窗的大小。是否有什么技巧可以阻止從Toplevel()創建的子視窗的大小調整?
uj5u.com熱心網友回復:
嘗試設定視窗的標題。mainWin.wm_title("main") 和 subWin.wm_title("sub")。這將告訴你哪個視窗是哪個。當我運行你的代碼時,頂層是不能調整大小的(所以它是有效的),但它也不在上面。根據你的完整代碼,也許問題是toplevel在主視窗后面,而兩者被混淆了。為了解決這個問題,你可以呼叫mainWin.lower()。這將把它放在頂層的后面。
如果這還不能解決任何問題,請告訴我。
uj5u.com熱心網友回復:
讓我困惑的是,我有另一個程式,我從那里復制了視窗代碼,而那個程式表現的很好。而新的程式,幾乎是原封不動地復制的,卻沒有。這里是 "新 "代碼。(我試過lower(),但它沒有起作用,不管它在我寫的舊程式中是否出現,它確實起作用了,這是讓我撓頭的原因)。
class HarmonyExplorerMainWindow。
def __init__(self):
#____________________________________________________________
# ----------------------- Main Window -----------------------
self.mainWin = tk.Tk()
self.mainWin.title('Harmony Explorer by Stuart Christmas'/span>)
MainWidth = 1000655[/span
self.mainWin.geometry(str(MainWidth) 'x' str(MainHeight)) # width x height
self.mainWin.resizable(False,False)
<<在不同的檔案中新建子視窗>>。
class CustomizeWindow()。
def __init__(self,father):
#____________________________________________________________
# ----------------------- 主視窗 -----------------------
CustomWin = tk.Toplevel(parent.mainWin)
CustomWin.title('Customize Scale')
CustomWin.geometry("485x238")
CustomWin.resizable=(False,False)
這段代碼在我的舊程式(完全不同)中作業正常,兩個視窗都不能調整大小。但在這個逐字拷貝中(除了視窗和變數名),第一個代碼塊中的主視窗不能調整大小(很好),但從下部代碼創建的子視窗仍然可以。這讓我很抓狂。我也試著用grab_set()和focus_set()亂搞,但總是回頭看看作業代碼,想知道有什么不同。視窗中的其他東西都作業得很好,包括使用來自父級的變數(parent.x等),所以我知道我的呼叫是正常的......
(編輯部)。
(EDIT: I notice my second class def ends with ()... which I don't think is right (other question maybe) but that didn't fix it...)
標籤: 下一篇:使用Jupyter筆記本--對于這個tkinter演算法來說,哪個是最好的?quit(),exit(),sys.exit(),oros.exit()?
