您好,登錄后才能下訂單哦!
本文實例講述了Python GUI編程。分享給大家供大家參考,具體如下:
import os from time import sleep from tkinter import * from tkinter.messagebox import showinfo class DirList(object): def __init__(self, initdir=None): self.top = Tk() self.label = Label(master=self.top, text='Directory Lister V1.0') self.label.pack() self.cwd = StringVar(master=self.top) self.dirl = Label(self.top, fg='blue', font=('Helvetica', 14, 'bold')) self.dirl.pack() self.dirfm = Frame(master=self.top) self.dirsb = Scrollbar(master=self.dirfm) self.dirsb.pack(side=RIGHT,fill=Y) # fill=Y,垂直填充空間排列 self.dirs = Listbox(master=self.dirfm, height=15, width=50, yscrollcommand=self.dirsb.set) self.dirs.bind('<Double-1>', func=self.setDirAndGo) # <Double-1>,雙擊顯示路徑列表 self.dirsb.config(command=self.dirs.yview) self.dirs.pack(side=LEFT, fill=BOTH) self.dirfm.pack() self.dirn = Entry(master=self.top, width=50, textvariable=self.cwd) self.dirn.bind('<Return>', func=self.doLS) self.dirn.pack() self.bfm = Frame(master=self.top) self.cleer = Button(master=self.bfm, text='清除', command=self.clrDir, activeforeground='white', activebackground='blue') self.ls = Button(master=self.bfm, text='顯示列表', command=self.doLS, activeforeground='white', activebackground='green') self.quit = Button(master=self.bfm, text='退出', command=self.top.quit, activeforeground='white', activebackground='red') self.cleer.pack(side=LEFT) self.ls.pack(side=LEFT) self.quit.pack(side=LEFT) self.bfm.pack() if initdir: self.cwd.set(os.curdir) self.doLS() def setDirAndGo(self, ev=None): self.last = self.cwd.get() self.dirs.config(selectbackground='red') chek = self.dirs.get(self.dirs.curselection()) if not chek: chek = os.curdir self.cwd.set(chek) self.doLS() def doLS(self, ev=None): error = '' tdir = self.cwd.get() if not tdir: tdir = os.curdir if not os.path.exists(tdir): error = tdir + ':未找到文件,請檢查路徑!' elif not os.path.isdir(tdir): error = tdir + ':不是一個路徑!' if error: # self.cwd.set(error) showinfo(title='提示',message=error) self.top.update() # sleep(2) if not (hasattr(self, 'last') and self.last): self.last = os.curdir self.cwd.set(self.last) self.dirs.config(selectbackground='LightSkyBlue') self.top.update() return if not os.path.isdir(tdir): self.cwd.set('') else: self.cwd.set('獲取目錄內容中...') self.top.update() dirlist = os.listdir(tdir) dirlist.sort() os.chdir(tdir) self.dirl.config(text=os.getcwd()) self.dirs.delete(0, END) self.dirs.insert(END, os.curdir) self.dirs.insert(END, os.pardir) for eachfile in dirlist: self.dirs.insert(END, eachfile) self.cwd.set(os.curdir) self.dirs.config(selectbackground='LightSkyBlue') def clrDir(self, ev=None): self.cwd.set('') if __name__ == '__main__': dir = DirList(os.curdir) mainloop()
效果如下:
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。