Найти - Пользователи
Полная версия: Tkinter.Entry
Начало » GUI » Tkinter.Entry
1
bizon73
Можно в Tkinter.Entry занести значения переменной?Мне нужно чтобы пользователь мог скопировать информацию.Эта информация находится в переменной.
sp3
это что ли ?
from Tkinter import *

text = 'trololo'

root = Tk()
ent = Entry(root, font = 'Arial 14',borderwidth = 7)
ent.pack()
ent.insert(END,text)
root.mainloop()
4kpt
А разве так прямо можно? Я для внесения в Еntry пользовался специальным типом VarInt и методом .set(a), где а - имя переменной.
igor.kaist
4kpt
А разве так прямо можно? Я для внесения в Еntry пользовался специальным типом VarInt и методом .set(a), где а - имя переменной.
Если есть такой метод, то почему нельзя?
4kpt
Прошу прощения. Я в смысле: во блин, буду знать.
OldSkif
Или же так:
from Tkinter import *
root = Tk()
text = StringVar()
s = "ля-ля, тополя"
text.set(s.decode("cp1251"))
Entry(root,
textvariable = text,
font = 'Arial 14',
borderwidth = 7)
.pack()
root.mainloop()
igor.kaist
OldSkif
Или же так:
А так ли не проще?
#coding:utf-8
from Tkinter import *

root=Tk()
ent=Entry(root)
ent.pack()
ent.insert(END,'Привет')

root.mainloop()
Кстати, StringVar замечательно подходит в том случае, если нужно делать валидацию поля “в реальном времени”, то есть во время ввода, указать для метод trace. Например, подсвечиваем текст красным, если пользователь начал вводить не цифры:
#coding:utf-8
from Tkinter import *

root=Tk()

def validate(*data):
if s.get().isdigit():
ent['foreground']='black'
else:
ent['foreground']='red'

s=StringVar()
s.trace('w',validate)

ent=Entry(root,textvariable=s)
ent.pack()


root.mainloop()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB