[英]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.