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的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
Python3使用requests发闪存的方法
May 11 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
python实现文本界面网络聊天室
Dec 12 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
python高级特性简介
Aug 13 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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 has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
Python中使用中文的方法
2011/02/19 Python
详解Python中heapq模块的用法
2016/06/28 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
经济系大学生求职信
2013/10/01 职场文书
电子信息毕业生自荐信
2013/11/16 职场文书
职工代表大会主持词
2014/04/01 职场文书
爱国主义演讲稿
2014/05/07 职场文书
会计求职信
2014/05/29 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
神秘岛读书笔记
2015/07/01 职场文书
辩论会主持词
2015/07/03 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python