Я хотел бы создать запись с Tkinter, где пользователь может ввести свой номер телефона, и текст динамически изменится, чтобы после его завершения он стал как +34 1234567890
.Tkinter .icursor (* arg) странное поведение
В моем коде функция .icursor(n)
, используемая для установки положения курсора, сначала не работает должным образом, но затем превзошла префикс.
Это мой фрагмент кода (он относится к значительно большему).
from Tkinter import *
def TelephoneCheck(self,Vari):
Plain = Vari.get()
Plain = list(Plain)
Plain_flat = []
for element in Plain:
try:
check = int(element)
Plain_flat.append(element)
except: pass
if len(Plain_flat) > 2:
Plain_flat.insert(2,' ')
Plain = ''.join(Plain_flat)
Plain = '+'+Plain
self.istn.set(Plain)
self.InsertTelephoneNumber.icursor(len(Plain))
def CreateInsertTelephoneNumber(self,X,Y,color='white'):
self.istn = StringVar()
self.istn.trace('w', lambda name, index, mode, istn=self.istn: self.TelephoneCheck(istn))
self.InsertTelephoneNumber = Entry(Body,textvariable=self.istn)
self.InsertTelephoneNumber.config(bg=color)
self.InsertTelephoneNumber.place(height=20,width=230,y=Y+27,x=X+245)
def LabelBody(self,X,Y):
TelephoneText = Label(Body,text='Telephone Number *')
TelephoneText.place(y=Y+4,x=X+243)
self.CreateInsertTelephoneNumber(X,Y)
Как вы видите, теоретически, позиция должна быть выставиться в конце строки каждый раз, когда пользователь добавляет номер. Я не могу понять, почему он работает как прелесть только после префикса, а не когда набирается первое число (это результат как +(Cursor here)3
вместо +3(Cursor here)
).
Если требуется больше кода, я обновлю сообщение.
Спасибо за ваше время и помощь!
«не работает должным образом» не имеет смысла. Что вы получаете, а не получаете точно? –
@ParvizKarimli .курсор (позиция) должен перемещать курсор в указанную позицию. К сожалению, это не тогда, когда набирается первый символ. Поэтому я бы сказал, что это поведение «не работает правильно» ... – Mark
Что вы сделали, чтобы отладить это? Вы распечатали значения переменных, чтобы проверить свои предположения? –