Python GUI编程完整示例


Posted in Python onApril 04, 2019

本文实例讲述了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 GUI编程完整示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
python 实现调用子文件下的模块方法
Dec 07 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
python2 对excel表格操作完整示例
Feb 23 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
详解python tcp编程
Aug 24 Python
python 模拟登陆163邮箱
Dec 15 Python
Python使用sax模块解析XML文件示例
Apr 04 #Python
详解小白之KMP算法及python实现
Apr 04 #Python
Python魔法方法功能与用法简介
Apr 04 #Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 #Python
pandas删除指定行详解
Apr 04 #Python
详解python之heapq模块及排序操作
Apr 04 #Python
python实现kmp算法的实例代码
Apr 03 #Python
You might like
php实现webservice实例
2014/11/06 PHP
js代码实现微博导航栏
2015/07/30 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js检测判断日期大于多少天的方法
2015/05/04 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
学校后勤人员职责
2013/12/27 职场文书
财务工作个人总结
2015/02/27 职场文书
上课迟到检讨书
2015/05/06 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
天气温馨提示语
2015/07/14 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
导游词之天津盘山
2019/11/01 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript