(三)Python 學習第三天--GUI桌面項目
阿新 • • 發佈:2017-07-12
gui spl 學習 ext pytho 文字 pen 內容 election
(代碼參考了別人的代碼,只做學習用途!!!最近因為寫論文,好久沒有記錄,好內疚。。。今天學習了一個小案例,做一下)
主要使用模塊:tkinter
代碼如下:
from tkinter import *
from tkinter import messagebox as tkMessageBox
from tkinter import filedialog as tkFiledialog
import os
import fnmatch #fnmatch是一種函數,功能是指定的模式來匹配文件名或字符串。定義和用法語法 fnmatch(pattern,string,flags) 參數 描述 pattern 必需。
def search():
text = entry_1.get() #取值
if not text:
tkMessageBox.showinfo(‘Error‘,‘請輸入關鍵字!‘)
return
fn = tkFiledialog.askdirectory()#選擇文件夾
fnlist = os.walk( fn ) #列出目錄
#對於os.walk的使用,產生一個可叠代的對象, 通常使用root,dirs,files來接收
#root:文件路徑 dirs:子文件夾名稱 files:文件名
for root, dirs, files in fnlist:
for i in fnmatch.filter(files, entry_2.get()):
filename = ‘%s/%s‘%(root,i)
listbox.insert(END, filename)
def click(event):
index = listbox.curselection()
path = listbox.get(index)
if not path:
return
window = Tk()
window.title(‘查看文件‘)
text = Text(window, width = 100) #多行文本框
text.grid()
fn_text = open(path).read()
text.insert(END, fn_text)
root = Tk()
root.title(‘第一個可視化窗口‘)
#root.geometry(‘300x200+1000+200‘) 可以使用缺省內容的方式,使窗口自動調節
root.geometry()
Label(root, text = ‘關鍵字:‘).grid()
entry_1 = Entry(root)
entry_1.grid(row=0, column =1)
Label(root, text = ‘文件類型:‘).grid(row = 0, column = 2)
entry_2 = Entry(root)
entry_2.grid(row = 0, column = 3)
button = Button(root, text = ‘選擇文件‘, command=search)
button.grid(row = 0, column = 4)
listbox = Listbox(root, width = 80)
listbox.bind(‘<Double-Button-1>‘,click)
listbox.grid(row = 1, column = 0, columnspan = 5)
root.mainloop()
實現效果:
第一步:打開一個可視化的桌面窗口:
第二步:當關鍵字不輸入時:
第三步:當正確輸入時,彈出文件選擇窗口:
第四步:雙擊列表裏的任意一條信息,打開文件:
註:
1. 走過的坑,tkinter為自帶類庫,不需要從第三方加載,Python2中為Tkinter,但在Python3中為tkinter,並把一些子庫放在tkinter中;
2.root = Tk(),實例化一個窗口對象; root.geometry(‘300x200+200+100‘) ==> 其中不是乘號符*,而是英文字母x,200為離屏幕左邊的距離, 100為離屏幕右邊的距離
3.from tkinter import messagebox , messagebox 為一個彈出的信息框;
4.from tkinter import filedialog , filedialog 為文件選擇
5.GUI開發:由界面----> 功能
(三)Python 學習第三天--GUI桌面項目