Verfasst: Dienstag 30. September 2008, 15:35
Hallo yipyip
Hier meine Endlösung. Markierte Bereiche bzw. Zeichen können nur mit Zeichen gelöscht werden die das Filter zulässt mit Ausnahme der obligaten Steuerzeichen:
Gruss wuf (the Voodoo-Programmer) 
Hier meine Endlösung. Markierte Bereiche bzw. Zeichen können nur mit Zeichen gelöscht werden die das Filter zulässt mit Ausnahme der obligaten Steuerzeichen:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Verfasser : wuf
# Skriptname: entry_num_filter_05.py
# Datum : 30.09.2008
# Funktion : Eingabe mit Filter
import Tkinter as tk
from string import digits
ENTRY_FILTER = list(digits + ".")
class MyEntry(object, tk.Entry):
def __init__(self, parent):
self.parent = parent
self.entry_value = tk.StringVar()
tk.Entry.__init__(self, self.parent, width=20, bg='white', bd=1,
validate='key', vcmd=self.validate_entry, highlightthickness=0,
textvar=self.entry_value, exportselection=False)
self.pack(side='top')
self.bind('<Return>', self.entry_return)
def entry_return(self, event=None):
print "Entry-Value", self.entry_value.get()
def validate_entry(self):
index = self.index('insert')
value = self.entry_value.get()
arg = index, value
self.after_idle(self.test, arg)
return True
def test(self, arg):
self.flag = False
val_index, val_value = arg
index = self.index('insert')
value = self.entry_value.get()
for char in value:
if char in ENTRY_FILTER:
continue
else:
print 'Hallo', ord(char)
self.flag = True
self.entry_value.set(val_value)
self.icursor(val_index)
return
root = tk.Tk()
root.geometry('200x100')
my_entry = MyEntry(root)
my_entry.pack_configure(pady=10)
my_entry.focus_set()
root.mainloop()
