1. 程式人生 > >Python學習之使用ktinker的GUI設計

Python學習之使用ktinker的GUI設計

Python學習之使用ktinker的GUI設計

基礎程式碼

from tkinter import *
import tkinter.messagebox as messagebox
class Application(Frame): #定義一個類,引數是frame,可以看做是控制元件的父容器
     def__init__(self,master=None):
         Frame.__init__(self,master,bg='red')
         self.pack()
         self.createWidgets()
     def
createWidgets(self): #用於建立控制元件,是frame的子 self.nameInput = Entry(self) self.nameInput.pack()#pack()方法把Widget加到父容器中,並實現佈局 self.alterButton = Button(self,text='hello',command=self.hello) self.alterButton.pack() def hello(self):#觸發設定 name = self.nameInput.
get() messagebox.showinfo('message','hello,%s'%name) root = Tk() #建立一個名為root的視窗 root.title('標題') root.wm_minsize(200,200) app = Application(root) #視窗置於類中 app.mainloop() #執行,啟動訊息迴圈

checkbutton

from tkinter import *
root = Tk() #建立一個視窗
v = IntVar() #建立一個變數,選中為1,未選中為0
c = Checkbutton(root,text=
'Test',variable=v) c.pack() #將控制元件放入root中,實現佈局 l = Label(root,textvariable=v) l.pack() root.mainloop()

Radiobutton

from tkinter import *

def change():
    print(v.get())#取出變數v的值
root = Tk()
v = IntVar()

Radiobutton(root,text='one',variable=v,value=1,command=change).pack(anchor=W)
Radiobutton(root,text='two',variable=v,value=2,command=change).pack(anchor=W)
Radiobutton(root,text='three',variable=v,value=3,command=change).pack(anchor=W)

root.mainloop()

Entry

from tkinter import *

root = Tk()

input = Entry(root)
input.pack(padx=20,pady=20)

input.insert(0,'請輸入內容')
 
root.mainloop()
from tkinter import *

root = Tk()

Lb1 = Label(root,text="作品:").grid(row=0,column=0)
Lb1 = Label(root,text="作者:").grid(row=1,column=0)

Ip1 = Entry(root)
Ip1.grid(row=0,column=1,padx=10,pady=5)
Ip2 = Entry(root)
Ip2.grid(row=1,column=1,padx=10,pady=5)

def show():
    print("作品:《%s》"%Ip1.get())
    print("作者:%s"%Ip2.get())

Button(root,text="獲取資料",command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)
Button(root,text="退出",command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5)
#padx:x方向的外邊距,ipadx:x方向的內邊距
root.mainloop()

Canvas繪圖

from tkinter  import *
master = Tk()
w  = Canvas(master,width=200,height=200)
w.pack()


line1 = w.create_line(0,50,200,50,fill="yellow")
line2 = w.create_line(100,0,100,100,fill="red",dash=(12,4)) #dash中元組第一個代表點劃線長,第二個代表間隔長度
rect1 = w.create_rectangle(50,25,150,75,fill="blue")

w.coords(line1,0,25,200,25)    #座標移動,至少4個引數,基本上就是重新繪製這條線
w.delete(line2) #刪除這條線
w.itemconfig(rect1,fill="red")  #對某一個建立的圖形專案進行配置屬性
w.itemconfig(line1,fill="green")
w.create_text(100,50,text='fewa')
w.create_oval(40,20,160,80,fill="pink") #建立橢圓
w.create_arc(40,20,160,80,fill="blue",width=3)  #建立扇形需兩個點,作為兩個端點
w.create_polygon(40,20,160,80,30,10,40,20,fill="white") #繪製多邊形,會自動封閉圖形(首尾)
Button(master,text="刪除所有",command=lambda x=ALL:w.delete(x)).pack()


master.mainloop()