亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filedialog.py

?? minimal python variant for small footprint apps like embedded apps
?? PY
字號:
"""File selection dialog classes.Classes:- FileDialog- LoadFileDialog- SaveFileDialog"""from Tkinter import *from Dialog import Dialogimport osimport fnmatchdialogstates = {}class FileDialog:    """Standard file selection dialog -- no checks on selected file.    Usage:        d = FileDialog(master)        file = d.go(dir_or_file, pattern, default, key)        if file is None: ...canceled...        else: ...open file...    All arguments to go() are optional.    The 'key' argument specifies a key in the global dictionary    'dialogstates', which keeps track of the values for the directory    and pattern arguments, overriding the values passed in (it does    not keep track of the default argument!).  If no key is specified,    the dialog keeps no memory of previous state.  Note that memory is    kept even when the dialog is cancelled.  (All this emulates the    behavior of the Macintosh file selection dialogs.)    """    title = "File Selection Dialog"    def __init__(self, master, title=None):        if title is None: title = self.title        self.master = master        self.directory = None        self.top = Toplevel(master)        self.top.title(title)        self.top.iconname(title)        self.botframe = Frame(self.top)        self.botframe.pack(side=BOTTOM, fill=X)        self.selection = Entry(self.top)        self.selection.pack(side=BOTTOM, fill=X)        self.selection.bind('<Return>', self.ok_event)        self.filter = Entry(self.top)        self.filter.pack(side=TOP, fill=X)        self.filter.bind('<Return>', self.filter_command)        self.midframe = Frame(self.top)        self.midframe.pack(expand=YES, fill=BOTH)        self.filesbar = Scrollbar(self.midframe)        self.filesbar.pack(side=RIGHT, fill=Y)        self.files = Listbox(self.midframe, exportselection=0,                             yscrollcommand=(self.filesbar, 'set'))        self.files.pack(side=RIGHT, expand=YES, fill=BOTH)        btags = self.files.bindtags()        self.files.bindtags(btags[1:] + btags[:1])        self.files.bind('<ButtonRelease-1>', self.files_select_event)        self.files.bind('<Double-ButtonRelease-1>', self.files_double_event)        self.filesbar.config(command=(self.files, 'yview'))        self.dirsbar = Scrollbar(self.midframe)        self.dirsbar.pack(side=LEFT, fill=Y)        self.dirs = Listbox(self.midframe, exportselection=0,                            yscrollcommand=(self.dirsbar, 'set'))        self.dirs.pack(side=LEFT, expand=YES, fill=BOTH)        self.dirsbar.config(command=(self.dirs, 'yview'))        btags = self.dirs.bindtags()        self.dirs.bindtags(btags[1:] + btags[:1])        self.dirs.bind('<ButtonRelease-1>', self.dirs_select_event)        self.dirs.bind('<Double-ButtonRelease-1>', self.dirs_double_event)        self.ok_button = Button(self.botframe,                                 text="OK",                                 command=self.ok_command)        self.ok_button.pack(side=LEFT)        self.filter_button = Button(self.botframe,                                    text="Filter",                                    command=self.filter_command)        self.filter_button.pack(side=LEFT, expand=YES)        self.cancel_button = Button(self.botframe,                                    text="Cancel",                                    command=self.cancel_command)        self.cancel_button.pack(side=RIGHT)        self.top.protocol('WM_DELETE_WINDOW', self.cancel_command)        # XXX Are the following okay for a general audience?        self.top.bind('<Alt-w>', self.cancel_command)        self.top.bind('<Alt-W>', self.cancel_command)    def go(self, dir_or_file=os.curdir, pattern="*", default="", key=None):        if key and dialogstates.has_key(key):            self.directory, pattern = dialogstates[key]        else:            dir_or_file = os.path.expanduser(dir_or_file)            if os.path.isdir(dir_or_file):                self.directory = dir_or_file            else:                self.directory, default = os.path.split(dir_or_file)        self.set_filter(self.directory, pattern)        self.set_selection(default)        self.filter_command()        self.selection.focus_set()        self.top.grab_set()        self.how = None        self.master.mainloop()          # Exited by self.quit(how)        if key:            directory, pattern = self.get_filter()            if self.how:                directory = os.path.dirname(self.how)            dialogstates[key] = directory, pattern        self.top.destroy()        return self.how    def quit(self, how=None):        self.how = how        self.master.quit()              # Exit mainloop()    def dirs_double_event(self, event):        self.filter_command()    def dirs_select_event(self, event):        dir, pat = self.get_filter()        subdir = self.dirs.get('active')        dir = os.path.normpath(os.path.join(self.directory, subdir))        self.set_filter(dir, pat)    def files_double_event(self, event):        self.ok_command()    def files_select_event(self, event):        file = self.files.get('active')        self.set_selection(file)    def ok_event(self, event):        self.ok_command()    def ok_command(self):        self.quit(self.get_selection())    def filter_command(self, event=None):        dir, pat = self.get_filter()        try:            names = os.listdir(dir)        except os.error:            self.master.bell()            return        self.directory = dir        self.set_filter(dir, pat)        names.sort()        subdirs = [os.pardir]        matchingfiles = []        for name in names:            fullname = os.path.join(dir, name)            if os.path.isdir(fullname):                subdirs.append(name)            elif fnmatch.fnmatch(name, pat):                matchingfiles.append(name)        self.dirs.delete(0, END)        for name in subdirs:            self.dirs.insert(END, name)        self.files.delete(0, END)        for name in matchingfiles:            self.files.insert(END, name)        head, tail = os.path.split(self.get_selection())        if tail == os.curdir: tail = ''        self.set_selection(tail)    def get_filter(self):        filter = self.filter.get()        filter = os.path.expanduser(filter)        if filter[-1:] == os.sep or os.path.isdir(filter):            filter = os.path.join(filter, "*")        return os.path.split(filter)    def get_selection(self):        file = self.selection.get()        file = os.path.expanduser(file)        return file    def cancel_command(self, event=None):        self.quit()    def set_filter(self, dir, pat):        if not os.path.isabs(dir):            try:                pwd = os.getcwd()            except os.error:                pwd = None            if pwd:                dir = os.path.join(pwd, dir)                dir = os.path.normpath(dir)        self.filter.delete(0, END)        self.filter.insert(END, os.path.join(dir or os.curdir, pat or "*"))    def set_selection(self, file):        self.selection.delete(0, END)        self.selection.insert(END, os.path.join(self.directory, file))class LoadFileDialog(FileDialog):    """File selection dialog which checks that the file exists."""    title = "Load File Selection Dialog"    def ok_command(self):        file = self.get_selection()        if not os.path.isfile(file):            self.master.bell()        else:            self.quit(file)class SaveFileDialog(FileDialog):    """File selection dialog which checks that the file may be created."""    title = "Save File Selection Dialog"    def ok_command(self):        file = self.get_selection()        if os.path.exists(file):            if os.path.isdir(file):                self.master.bell()                return            d = Dialog(self.top,                       title="Overwrite Existing File Question",                       text="Overwrite existing file %s?" % `file`,                       bitmap='questhead',                       default=1,                       strings=("Yes", "Cancel"))            if d.num != 0:                return        else:            head, tail = os.path.split(file)            if not os.path.isdir(head):                self.master.bell()                return        self.quit(file)def test():    """Simple test program."""    root = Tk()    root.withdraw()    fd = LoadFileDialog(root)    loadfile = fd.go(key="test")    fd = SaveFileDialog(root)    savefile = fd.go(key="test")    print loadfile, savefileif __name__ == '__main__':    test()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲妇女屁股眼交7| 美女高潮久久久| 亚洲欧美一区二区三区久本道91| 亚洲三级理论片| 日韩电影在线观看一区| 狠狠色狠狠色合久久伊人| 国产一区二区久久| 欧美午夜在线观看| 亚洲免费观看在线观看| 亚洲一区二区视频| 国产精品羞羞答答xxdd| 欧洲视频一区二区| 国产欧美日韩视频一区二区| 五月综合激情婷婷六月色窝| 国产.欧美.日韩| 欧美一级日韩一级| 亚洲精品第一国产综合野| 精品一区二区免费在线观看| av在线一区二区| 国产片一区二区| 久久国产精品72免费观看| 欧美精三区欧美精三区| 伊人婷婷欧美激情| 972aa.com艺术欧美| 久久免费视频一区| 久久国产精品一区二区| 3d成人动漫网站| 日本亚洲天堂网| 日韩欧美123| 视频一区二区中文字幕| 在线成人av网站| 亚洲成a天堂v人片| 欧美日本免费一区二区三区| 亚洲国产日韩a在线播放性色| 色94色欧美sute亚洲线路二| 午夜私人影院久久久久| 欧美日本一区二区在线观看| 亚洲成人免费电影| 欧美一二三区在线观看| 强制捆绑调教一区二区| 久久色在线视频| 不卡的电视剧免费网站有什么| ...中文天堂在线一区| 欧美私人免费视频| 日本欧美一区二区三区乱码| 中文字幕在线不卡一区二区三区 | 国产精品一区二区果冻传媒| 亚洲国产精品av| 精品视频在线免费观看| 精品一区二区日韩| 亚洲激情一二三区| 日韩欧美一区在线| 99re成人精品视频| 一本久久精品一区二区| 欧美视频中文字幕| 亚洲第一精品在线| 久久你懂得1024| 欧美一级黄色片| 日本精品视频一区二区三区| 欧美三级视频在线观看| 欧美久久久久久久久中文字幕| 欧美久久一二三四区| 久久美女艺术照精彩视频福利播放| 国产亚洲一区二区三区| 国产精品久久久久久久久免费丝袜 | 久久久久88色偷偷免费| 国产精品久久久久久久久动漫| 一区二区三区日韩在线观看| 日韩电影一区二区三区| 国产一区二区91| 欧美日韩一区二区三区四区五区 | 国产三级精品三级| 亚洲一区二区av在线| 国产精品白丝jk黑袜喷水| 欧美日韩一区二区三区在线看| 日本一区二区电影| 美国三级日本三级久久99| 欧美三级一区二区| 亚洲欧洲美洲综合色网| 久久成人精品无人区| 在线免费观看日本欧美| 国产农村妇女毛片精品久久麻豆 | 狠狠色狠狠色综合系列| 91精品一区二区三区在线观看| 亚洲美女视频一区| 9i看片成人免费高清| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | av在线不卡网| 久久精品视频一区| 国产毛片精品一区| 久久在线免费观看| 国产成人99久久亚洲综合精品| 精品国产不卡一区二区三区| 日韩av成人高清| 日韩天堂在线观看| 日本午夜一区二区| 日韩精品一区二区三区蜜臀| 欧美一区国产二区| 国产亚洲欧美在线| 色综合夜色一区| 国产真实乱子伦精品视频| 青青青爽久久午夜综合久久午夜| 久久亚洲精品小早川怜子| 日本韩国精品在线| 亚洲人精品午夜| 欧美中文字幕一区二区三区亚洲| 亚洲精品成人少妇| 5858s免费视频成人| 另类小说欧美激情| 国产精品―色哟哟| 91香蕉视频黄| 日本视频中文字幕一区二区三区| 日韩精品一区在线| 国产激情91久久精品导航| 欧美激情一区三区| 一本在线高清不卡dvd| 午夜不卡av在线| 国产校园另类小说区| 色婷婷综合久久久久中文一区二区 | 97se亚洲国产综合自在线观| 蜜臀精品一区二区三区在线观看| 亚洲一区在线播放| 精品久久久久久久久久久久久久久久久 | 午夜精品久久久久久久久久| 久久久午夜精品| 91麻豆精品国产91久久久久久| 福利一区二区在线| 九九**精品视频免费播放| 午夜a成v人精品| 亚洲乱码日产精品bd| 亚洲毛片av在线| 亚洲欧美另类久久久精品| 亚洲精品在线电影| 日韩一级二级三级| 久久久噜噜噜久噜久久综合| xnxx国产精品| 国产精品青草综合久久久久99| 国产免费成人在线视频| 高清在线观看日韩| 精品亚洲porn| 成人免费黄色在线| 欧美视频在线一区| 久久久不卡网国产精品二区| 一区二区三区在线观看国产| 麻豆久久久久久久| 91免费版在线看| 欧美乱妇20p| 国产欧美一区二区精品婷婷| 亚洲特黄一级片| 偷拍自拍另类欧美| 国产精品影视在线观看| jlzzjlzz亚洲日本少妇| 91一区一区三区| 日韩视频一区二区三区| 亚洲国产精品av| 日韩精品亚洲专区| 国产精品12区| 欧美视频在线不卡| 国产欧美视频在线观看| 洋洋成人永久网站入口| 久久丁香综合五月国产三级网站| www.欧美.com| 精品国偷自产国产一区| 亚洲免费三区一区二区| 久久99热国产| 欧美日韩一区不卡| 国产精品色噜噜| 国产精品18久久久久久久久 | 欧美一级在线视频| 亚洲影视在线播放| 北条麻妃一区二区三区| 国产欧美日韩综合精品一区二区| 免费欧美在线视频| 欧美日韩精品一区二区在线播放| 欧美激情艳妇裸体舞| 国产剧情av麻豆香蕉精品| 91精品国产91久久久久久最新毛片| 亚洲丝袜制服诱惑| 波多野结衣视频一区| 久久久国产精品麻豆| 日本欧美在线观看| 91精品国产福利| 日本视频在线一区| 日韩一区二区高清| 日本中文字幕一区| 日韩精品一区二区在线观看| 另类小说一区二区三区| 日韩午夜在线影院| 成人av免费观看| 2023国产精品| 国产精品一区二区三区乱码| 日韩精品自拍偷拍| 国产美女精品人人做人人爽| 国产精品麻豆久久久| 在线观看亚洲精品视频| 日韩精品欧美成人高清一区二区| 欧美成人精品1314www| 国产精品一二三四五| 亚洲久本草在线中文字幕| 91精品啪在线观看国产60岁|