本文实例讲述了python gui编程。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
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程序设计有所帮助。
原文链接:https://www.cnblogs.com/wcwnina/p/8017834.html