本文整理汇总了Python中tkinter.OptionMenu.selectitem方法的典型用法代码示例。如果您正苦于以下问题:Python OptionMenu.selectitem方法的具体用法?Python OptionMenu.selectitem怎么用?Python OptionMenu.selectitem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tkinter.OptionMenu
的用法示例。
在下文中一共展示了OptionMenu.selectitem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FilePick
# 需要导入模块: from tkinter import OptionMenu [as 别名]
# 或者: from tkinter.OptionMenu import selectitem [as 别名]
class FilePick(Frame):
def __init__(self, master, file_mask, default_file, user_onChange = None, font = None, dirs = (".", ), allowNone = False):
""" file_mask: file mask or list of file masks """
self.master = master
self.user_onChange = user_onChange
Frame.__init__(self, master)
self.columnconfigure(0, weight=1)
self.unmodified = True
self.file_extension = ""
if "." in file_mask:
self.file_extension = file_mask[file_mask.rfind('.'):]
if type(file_mask) != list:
file_mask = [file_mask]
self.file_masks = file_mask
self.allowNone = allowNone
self.dirs = dirs
# create list of files
self.updateList()
# pick default if applicable
self.set(default_file)
def onSelChange(self, name, index=0, mode=0):
filename = self.picked_name.get()
if self.user_onChange != None:
self.user_onChange(filename)
def updateList(self):
prev_sel = self.get()
# get list of files (paths)
self.files = []
if self.allowNone:
self.files.append("")
for fm in self.file_masks:
for dir in self.dirs:
try:
for filename in os.listdir(dir):
if fnmatch(filename, fm):
if dir != ".":
path = os.path.join(dir, filename)
else:
path = filename
self.files.append(path)
except:
pass
self.files.sort()
if len(self.files) == 0: self.files.append("(no %s files found)" % self.file_masks)
# create list object
self._makelist()
# reselect
self.set(prev_sel)
def getList(self):
""" returns the current list of files """
return self.files
def _makelist(self):
if havePMW:
self.list = ComboBox(self,
selectioncommand = self.onSelChange,
scrolledlist_items = self.files,
)
self.list.grid(row=0, column=0, padx=0, sticky="NEWS")
self.list.component('entryfield').component('entry').configure(state = 'readonly', relief = 'raised')
self.picked_name = self.list
else:
self.picked_name = StringVar()
self.list = OptionMenu(*(self, self.picked_name) + tuple(self.files))
self.list.grid(row=0, column=0, sticky="NEW")
self.picked_name.trace("w", self.onSelChange)
def set(self, filename):
default_file = filename
if default_file in self.files:
if not havePMW:
self.picked_name.set(default_file) # default value
else:
self.list.selectitem(self.files.index(default_file))
self.onSelChange(default_file)
pass
def get(self):
if not hasattr(self, 'picked_name'):
return None
return self.picked_name.get()
示例2: __init__
# 需要导入模块: from tkinter import OptionMenu [as 别名]
# 或者: from tkinter.OptionMenu import selectitem [as 别名]
class DropdownList:
def __init__(self, master, filemask='*.mln', default=None, allowNone=False, onselchange=None, directory='.'):
self.allowNone = allowNone
self.directory = directory
self.list_frame = master
self.onchange = onselchange
if type(filemask) != list:
filemask = [filemask]
self.file_mask = filemask
self.updateList()
if havePMW:
self.list = ComboBox(master, selectioncommand=onselchange, scrolledlist_items = self.files)
self.list.component('entryfield').component('entry').configure(state = 'readonly', relief = 'raised')
self.picked_name = self.list
else:
self.picked_name = StringVar()
self.list = OptionMenu(*(master, self.picked_name) + tuple(self.files))
if onselchange is not None:
self.picked_name.trace("w", self.onchange)
if default is not None:
self.select(default)
else:
self.select(self.files[0])
def __getattr__(self, name):
return getattr(self.list, name)
def get(self):
return self.picked_name.get()
def select(self, item):
if item in self.files:
if not havePMW:
self.picked_name.set(item)
else:
self.list.selectitem(item)
def updateList(self):
self.files = []
if self.allowNone:
self.files.append("")
if os.path.exists(self.directory):
for filename in os.listdir(self.directory):
for fm in self.file_mask:
if fnmatch(filename, fm):
self.files.append(filename)
self.files.sort()
if len(self.files) == 0 and not self.allowNone: self.files.append("(no %s files found)" % str(self.file_mask))
def makelist(self):
if havePMW:
self.list = ComboBox(self.list_frame,
selectioncommand = self.onSelChange,
scrolledlist_items = self.files,
)
self.list.grid(row=0, column=0, padx=0, pady=0, sticky="NEWS")
self.list.component('entryfield').component('entry').configure(state = 'readonly', relief = 'raised')
self.picked_name = self.list
else:
self.list = OptionMenu(*(self.list_frame, self.picked_name) + tuple(self.files))
self.list.grid(row=0, column=0, sticky="NEW")
self.picked_name.trace("w", self.onSelChange)
self.select(self.files[0])
def setDirectory(self, directory, keep=False):
self.directory = directory
self.updateList()
self.makelist()
# if keep is true, only the files list will be updated but the content of the
# text area will not be altered/removed
if not keep: self.select("")
def onSelChange(self, name, index=0, mode=0):
filename = self.picked_name.get()
if self.onchange != None:
self.onchange(filename)