Строковая переменная не устанавливает начальное значение - PullRequest
0 голосов
/ 29 февраля 2020
class Lay():
  def __init__(self):
    root=Tk()
    root.configure(background="black")
    var=StringVar()
    var.set("OVERVIEW")
    Label(root,textvariable=var).grid(row=1,column=1,sticky=W+E+N+S)
    Entry(root, textvariable = var).place(rely=1.0,relx=1.0,x=0,y=0,anchor=SE)
    root.mainloop() 

Здравствуйте, когда я запускаю это, начальное значение строковой переменной не появляется, но когда я печатаю в поле ввода, текст, который я печатаю, появляется в метке. Я не совсем уверен, почему это происходит, но для начала я получаю пустой ярлык с полем ввода. Спасибо за любую помощь.

1 Ответ

0 голосов
/ 29 февраля 2020

Хотя я не смог воспроизвести проблему, я реорганизовал ваш код для инициализации виджетов tkinter через класс (вдохновленный фрагментом в документах ), а также увеличил размер окна, чтобы виджеты были ясно видно. Если в вашем коде есть что-то еще, что вызывает несколько windows, как предложил @jasonharper, вы должны поделиться этим.

import tkinter as tk

class Lay(tk.Tk):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master        
        self.var=tk.StringVar()
        self.var.set("OVERVIEW")        
        self.Widgets()   


    def Widgets(self):        
        self.displaylbl = tk.Label(self,textvariable=self.var)
        self.displaylbl.grid(row=2,column=1,sticky=tk.W+tk.E+tk.N+tk.S)        
        self.entry = tk.Entry(self, textvariable = self.var)
        self.entry.place(rely=1.0,relx=1.0,x=0,y=0,anchor=tk.SE)


app = Lay()
app.geometry("200x200")
app.mainloop()

Вывод:

enter image description here

...