2017-05-20 13 views
1

私のGUIでは、たくさんのエントリボックスがあります。それらのほとんどは大量に使用されており、コンマ区切りを使用したいと考えています。私のコードを使用して私はそうすることができますが、カーソルは自動的に右に移動します。コンマが自動的に挿入されたとき。このカーソルを極端に固定する方法、またはコードを変更する方法があります。Tkinterエントリのコンマ区切りを使用する

from tkinter import * 
import locale 

root = Tk() 

a = StringVar() 
b = Entry(root, textvariable = a, justify = RIGHT).pack() 

def secod(*events): 
    ray = a.get() 
    raym = ray.replace(",",'') 
    raymond = int(raym) 
    try: 
     asd = format(raymond,',') 
    except: 
     print("b") 
    a.set(asd) 

a.trace('w',secod) 
root.mainloop() 

問題の画像が添付されています。 enter image description here

答えて

1

問題は、Entryboxのtextvariableを変更してもカーソル位置が自動的に更新されないという点です。代わりに、次の操作を行うことができます:

まず、(hereを参照)、そのアラインメントから、あなたの入力ボックスの作成を分離:

b = Entry(root, textvariable = a, justify = RIGHT) 
b.pack() 

その後、あなたのオブザーバーのコールバックでは、ウィジェットの独自のメソッドを使用してEntryboxの内容を変更します:

def secod(*events): 
    ray = a.get() 
    raym = ray.replace(",",'') 
    raymond = int(raym) 
    try: 
     asd = format(raymond,',') 
    except: 
     print("b") 
    # Overwrite the Entrybox content using the widget's own methods 
    b.delete(0, END) 
    b.insert(0, asd) 
関連する問題