python gui tkinter
上个学期写模拟cpu利用python来写过gui用的也是tkinter,这也是第二次使用gui了,简单说一说tkinter。
对于python开发简单的小程序界面我们用tkinter就可以得到满足了,本例子的实践中主要用到了Lable,Entry,Button三个组件,以及访问遍历文件的tkFileDialog 库。
使用tkinter来写图形界面首先我们要构建出页面的主体来也就是最外面的框框
from Tkinter import *
root=Tk()
root.configure(bg="red")
root.geometry("300x300+150+150")
root.mainloop()
我们可以通过root.configure来指定窗体的背景颜色,通过root.geometry来指定窗体出现的大小和位置,大小300x300,位置(150,150),接下来我们就要充当伟大的造物者给它添加Lable,Button和Entry。
label1=Label(root,text="hello word",width=30)
label2=Label.pack()
对于每一个组件我们首先要声明它属于哪一个主体,然后通过pack 或者grid,place来决定怎么放置它,如果不加上放置方法那么你的组件是不会显示在窗体上的。同时在声明组件的时候我们可以在组件的内部声明它的一些基础设置,比如高度height,宽度width等,同时我们可以通过设置padx,pady来设置该控件距离x和y的相对距离,通过ipadx,ipady设置当我们设置背景色时自身内部的填充空间。在pack()中我们可以通过声明它的side来决定它是放在什么位置,LEFT,RIGHT,BOTTOM,TOP分别靠近窗体的四个边框线,而text是规定组件显示内容,比如label这个组件它显示的文本就是hello world。
Label只是一个简单的显示字符串的组件,将特定的某个不变的字符串显示在某个位置。我们可以通过设置字体或者在Label中的属性值中设定。
Button是个可通过点击按钮触发事件的组件,比如当我们将某个函数的使用定义到button上时,当我们点击button我们就会运用这个程序或者是函数。
Entry是一个接受输入单行字符串的窗口控件,可以通过.set(“”)方法来设定它的值也可以通过get方法来得到其中的值,多见于我们平时的登陆框,可以和Button按钮组合使用。我们首先往单行框内写入,然后通过点击按钮获得内容然后再进行别的操作。
from Tkinter import *
root=Tk()
e=StringVar()
entry=Entry(root,textvariable=e)
entry.pack()
def huode():
a=entry.get()
print a
button1=Button(text="submit",command=huode)
button1.pack()
root.mainloop()
from Tkinter import *
import tkFileDialog
import tkFont
win=Tk()
img1=PhotoImage("th.gif")
#win.configure(image=img1)
ft=tkFont.Font(family='Fixdsys',size=30,weight=tkFont.BOLD)
lable1=Label(text="Welcome to use the system",font=ft,pady=30)
lable1.pack(side=TOP)
ft1=tkFont.Font(family='Fixdsys',size=20,weight=tkFont.BOLD)
label2=Label(text="please input your file",font=ft1)
label2.pack(side=LEFT)
label4=Label(image=img1)
label4.pack(side=LEFT)
win.title('hello world')
win.geometry('800x550+300+150')
var=Variable()
e=Entry(win,width=40,textvariable=var)
e.pack(side=LEFT)
def hello():
print('hello')
filename=tkFileDialog.askopenfilename(initialdir = "~/ACM")
var.set(filename)
def upload():
a=var.get()
var.set("")
if(a!=""):
root=Tk()
root.title("submit")
root.geometry('+500+300')
ft1=tkFont.Font(size=350,weight=tkFont.BOLD)
label3=Label(root,text="sucess to submit the file",font=ft1)
label3.pack(fill=BOTH,padx=30,pady=30)
root.mainloop()
print a
btn=Button(win,text='upload',width=10,command=upload)
btn.pack(side=BOTTOM,fill=X,pady=70,padx=40)
btn=Button(win,text='liulan',width=10,command=hello)
btn.pack(side=BOTTOM,fill=X,padx=40)
mainloop()