學(xué)了一點(diǎn)點(diǎn)python基礎(chǔ)語法愚屁,就斗膽用它加上一些文件讀寫的module死宣,寫了幾個(gè)文件處理的程序奸笤;
但是需求又說:寫個(gè)簡單的GUI吧惋啃,用起來方便。
目標(biāo):GUI實(shí)現(xiàn)
- 點(diǎn)擊選擇文件按鈕彈出windows的文件管理器监右,選取所需要的文件/文件夾
- 將上述的路徑顯示出來
- 點(diǎn)擊運(yùn)行按鈕边灭,運(yùn)行文件處理程序
工具:選擇了python自帶的tkinter
參考資料:
http://www.tutorialspoint.com/python/python_gui_programming.htm
簡直是最全面的資料!
簡單介紹一下最關(guān)鍵的部分:
首先要有一個(gè)基本的框架健盒,我們在這個(gè)框架里面添加其他的框架:
root = Tk() #base window
這個(gè)root
就是主框架名
然后我們計(jì)劃一下绒瘦,程序有哪幾個(gè)部分,因?yàn)橐O(shè)計(jì)布局扣癣,而tkinter非常簡單惰帽,只能定義上下左右4個(gè)方向;我們定義兩個(gè)主要的部分父虑,左邊和右邊:
buttonfrm = Frame(root) #'button frame' is in Root window
buttonfrm.pack()
textframe = Frame(root) #text frame in Root window
textframe.pack(side=LEFT)
textframe 和 buttonframe 是兩個(gè)副框架名
然后我們在里面去定義組件该酗。
語法:#
因?yàn)樯厦婺莻€(gè)連接是最全面的,我就不多說了频轿,盡量參考原文檔垂涯。
按鈕:
B = Tkinter.Button(top, text ="Hello", command = function)
字符框:
可實(shí)時(shí)更新哦(用下面的set函數(shù))
var = StringVar()
label = Label( root, textvariable=var, relief=RAISED )
var.set("Hey!? How are you doing?")
label.pack()
示例:
import Tkinter
import tkMessageBox
top = Tkinter.Tk()
def helloCallBack():
tkMessageBox.showinfo( "Hello Python", "Hello World")
B = Tkinter.Button(top, text ="Hello", command = helloCallBack)
B.pack()
top.mainloop()
python 代碼:
import tkinter
from tkinter import *
global s
s='sssss'
def func1():
s='fucked!'
outputtext.set(s)
root = Tk() #base window
buttonfrm = Frame(root) #'button frame' is in Root window
buttonfrm.pack()
textframe = Frame(root) #text frame in Root window
textframe.pack(side=LEFT)
btnfrm=Frame(root)
btnfrm.pack(side=BOTTOM)
inputbutton = Button(buttonfrm, text="Input",command=func1) #command = helloCallBack
inputbutton.pack()
outputbutton = Button(buttonfrm, text="Output")
outputbutton.pack()
inputtext=StringVar()
inputmsg=Label(textframe,textvariable=inputtext, relief=RAISED)
inputtext.set(s)
inputmsg.pack()
s='changed!'
outputtext=StringVar()
outputmsg=Label(textframe,textvariable=outputtext, relief=RAISED)
outputtext.set(s)
outputmsg.pack()
#run & exit button
runbutton = Button(btnfrm, text="RUN!",fg='red')
runbutton.pack()
exitbutton = Button(btnfrm, text="EXIT!",command=root.quit)
exitbutton.pack()
root.mainloop()