1. 程式人生 > >python-tkinter模組圖形繪製、移動小程式(一)

python-tkinter模組圖形繪製、移動小程式(一)

圖形視窗顯示按鈕,標籤:

# 簡單GUI(圖形使用者介面)示例
from tkinter import *
def main():
    tk = Tk('123')
    label = Label(tk,text = '歡迎來到python tkinter') # label:標籤
    button = Button(tk,text = '點選') # button:按鈕
    label.pack()
    button.pack()
    tk.mainloop()
main()
通過按鈕,響應使用者事件:
from tkinter import *
def processOK():
    print('按鈕已經點選')
def processCancel():
    print('取消點選按鈕')
def main():
    tk = Tk()
    btnOK = Button(tk,text = 'ok',fg = 'red',command = processOK)
    btnCancel = Button(tk,text = '取消',bg = 'yellow',command = processCancel)
    btnOK.pack()
    btnCancel.pack()
    tk.mainloop()
main()
通過鍵盤方向鍵控制目標移動:
from tkinter import *
def main():   
    tk = Tk()
    canvas = Canvas(tk, width = 400, height = 400) #設定畫布
    canvas.pack() #顯示畫布
    def moverectangle(event):  # 繫結方向鍵
        if event.keysym == "Up":
            canvas.move(1,0,-5) # 移動的是 ID為1的事物【move(2,0,-5)則移動ID為2的事物】,使得橫座標加0,縱座標減5
        elif event.keysym == "Down":
            canvas.move(1,0,5)
        elif event.keysym == "Left":            
            canvas.move(1,-5,0)            
        elif event.keysym == "Right":            
            canvas.move(1,5,0)
    '事件ID可能跟程式的先後順序有關,例如,下面先建立了200*200的矩形,後建立了20*20的矩形'    
    r = canvas.create_rectangle(180,180,220,220,fill="red") # 事件ID為1
    print(r) #列印ID驗證一下
    m = canvas.create_rectangle(10,10,20,20,fill="blue") #事件ID為2
    print(m) #列印ID驗證一下
    canvas.bind_all("<KeyPress-Up>",moverectangle) #繫結方向鍵與函式
    canvas.bind_all("<KeyPress-Down>",moverectangle)
    canvas.bind_all("<KeyPress-Left>",moverectangle)
    canvas.bind_all("<KeyPress-Right>",moverectangle)
if __name__ == '__main__':
    main()