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中MySQLdb模块用法实例
Nov 10 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
Python遍历numpy数组的实例
Apr 04 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
Django框架序列化与反序列化操作详解
Nov 01 Python
python实现按关键字筛选日志文件
Dec 24 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
python实现图像拼接功能
Mar 23 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python xlrd模块导入过程及常用操作
Jun 10 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+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
JavaScript 无符号右移运算符
2009/04/17 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
react中Suspense的使用详解
2019/09/01 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python使用fork实现守护进程的方法
2017/11/16 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
python多线程同步实例教程
2019/08/11 Python
美的官方商城:Midea
2016/09/14 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
技术经理的自我评价范文
2013/12/03 职场文书
5.1手机促销活动
2014/01/17 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP