黑松山资源网 Design By www.paidiu.com
本文实例讲述了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程序设计有所帮助。
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月07日
2024年10月07日
- 班得瑞原装进口《第五张新世纪专辑:迷雾森林+EP》1CD[APE/CUE分轨][334.2MB]
- 田震.1997-顺其自然(日版)【红星生产社】【WAV+CUE】
- 小虫.1996-想得太美【滚石】【WAV+CUE】
- 谢采妘.2016-邓丽君名曲专辑【丰荣】【WAV+CUE】
- 张含韵.2007-一人一梦【天中文化】【WAV+CUE】
- 蟑螂乐队.1999-帮个忙【福茂】【WAV+CUE】
- 张宇.2001-替身【EMI百代】【WAV+CUE】
- 班得瑞原装进口《第六张新世纪专辑:日光海岸》1CD[APE/CUE分轨][339.5MB]
- 班得瑞原装进口《第七张新世纪专辑:梦花园》1CD[APE/CUE分轨][331.4MB]
- 班得瑞原装进口《第八张新世纪专辑:琉璃湖畔》1CD[APE/CUE分轨][286.4MB]
- 魏如萱.2011-在哪里(EP)【添翼创越】【WAV+CUE】
- 群星.1981-新金曲奖·青年创作园地12合辑(喜玛拉雅复刻版)【歌林】【WAV+CUE】
- 麦洁文.1989-新曲与精丫新艺宝】【WAV+CUE】
- SNH48《薄荷糖 (Mint Candy)》[320K/MP3][33.72MB]
- SNH48《薄荷糖 (Mint Candy)》[FLAC/分轨][78.59MB]