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中的装饰器用法详解
Jan 14 Python
Python中for循环控制语句用法实例
Jun 02 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
python脚本设置系统时间的两种方法
Feb 21 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python爬虫 requests-html的使用
Nov 30 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
php格式化时间戳
2016/12/17 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python实现梯度下降算法
2020/03/24 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
见习报告格式要求
2014/11/04 职场文书
高一军训口号
2015/12/25 职场文书
党员反邪教心得体会
2016/01/15 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
Python实现双向链表基本操作
2022/05/25 Python