簡體   English   中英

無法更改 tkinter 中的程序標題

[英]cant change title of program in tkinter

這是我的主要模塊(這是用於銷售點系統)

from tkinter import *
from SettingsMenuPOS import *
from Globalvariables import *



    root = Tk() #mainprogram
     
    root.iconbitmap('D:/Gatlabs logo.ico')
    
    
    
    opensettingsmenu = Button(root, text= "Open Settings", command = settingsmain)
    root.title(Mname)
    
    
    
    opensettingsmenu.grid(row= 0, column= 0)
    
        
    enter_button = Button( root , text = "ENTER", padx = 20, pady = 10, command= EnterEvent)
     
    enter_button.grid(row= 0, column= 1)
    
    root.mainloop()

我正在導入一個更改程序標題的設置模塊

from Globalvariables import *
from tkinter import *

#Mart Name
#user accounts




def settingsmain():

 settingmenu = Toplevel()
 settingmenu.iconbitmap('D:/Gatlabs logo.ico')

 global entryformartname

 labelformartname = Label(settingmenu, text = "Enter name of your store")
 entryformartname = Entry(settingmenu)
 entryformartname.grid(row = 0, column = 0)

 setmartname = Button(settingmenu, text = "setname", command = setname)
 setmartname.grid(row= 0, column = 1)

 settingmenu.mainloop()


def setname():

    global Mname, entryformartname
    Mname = entryformartname.get()

我使用全局變量 Mname 來顯示程序的標題。 我設置了變量 Mname = "Gatlabs" 並且用戶可以通過輸入來更改它。 但是每次我嘗試設置標題時它都不會改變:(我希望在編碼方面做得更好,但我很爛。請幫助我卡住

我認為這里的問題是您正在考慮使用-:

root.title(var)

將使得任何時候您更改 var 標題都會更改,但實際上標題僅更改一次,並且更改為 var 在提供時的值。

因此,如果您希望每次更改 var 時都更改它,那么請將其放在與更改 var 相同的 function 中。

def update_title(title) :
     global var
     
     var = title
     root.title(title)
     return

現在每次更改標題時,都會以所需的標題作為參數運行它。

我希望這能解決你的問題。 我也希望你在持續的大流行期間是安全的。

像這樣更改setname function:

def setname():
    global Mname, entryformartname, setmartname 
    Mname = entryformartname.get()
    
    parent_name = setmartname.winfo_parent()
    parent = setmartname._nametowidget(parent_name)
    parent.title(Mname)

在您的代碼中,您只需更新Mname變量,並且 window 標題保持不變。

更新:

您可以從 window 本身的按鈕小部件中獲取主控件。 然后,更改其標題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM