Code en beta mais fonctionnant correctement
Hello there, I'm trying to restrict the selected value of a Pmw.Combox to the only possible values in the list. Here how I did use the extravalidators to reach that goal.
Roughly beta code but worked fine
from tkinter import *
import Pmw
root = Tk()
root.option_readfile('optionDB')
...
...
combovalues = ['v1','v2','v3']
f = Frame( root )
l = Label( f, text="Combo", anchor=W, width=15 ).pack( side=LEFT, expand=N )
def strictselect_validate(avalue):
print( 'validate: %s' % avalue )
if avalue in combovalues:
return Pmw.OK
elif any( [avalue in v for v in combovalues] ):
return Pmw.PARTIAL
else:
return Pmw.ERROR
def strictselect_stringtovalue(avalue): # Not used in this case
print( 'stringtovalue: %s' % avalue )
return None
combobox2 = Pmw.ComboBox( f, labelpos='wn', listbox_width=24, dropdown=1,
entry_bg='white', entry_fg='black',
scrolledlist_items=combovalues,
entryfield_extravalidators = { 'strictselect' : (strictselect_validate, strictselect_stringtovalue) },
entryfield_validate = { 'validator' : 'strictselect' } )
combobox2.pack( side=LEFT, expand=N )
fields.append( (combobox2, None) ) # the Field and the string variable
f.pack( side=TOP, expand=N, fill=X )
Le truc: le Pmw.ComboBox utilise un Pmw.EntryField, il est donc possible d'utiliser les fonctionnalités de Pmw.EntryField
The Tip: the Pmw.ComboBox use a Pmw.EntryField, it is then possible to use the features of Pmw.EntryField
Aucun commentaire:
Enregistrer un commentaire