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 相关文章推荐
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
利用python求相邻数的方法示例
Aug 18 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
python中return的返回和执行实例
Dec 24 Python
Python reques接口测试框架实现代码
Jul 28 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
python 如何设置守护进程
Oct 29 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
Python if else条件语句形式详解
Mar 24 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
javascript常用方法汇总
2014/12/02 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
vant实现购物车功能
2020/06/29 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
深入解析Python中的上下文管理器
2016/06/28 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python socket聊天脚本代码实例
2020/01/02 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
端午节演讲稿
2014/05/23 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
小学生思想品德评语
2014/12/31 职场文书
维稳承诺书
2015/01/20 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis