python tkinter之 複選、文字、下拉的實現
阿新 • • 發佈:2020-03-04
我就廢話不多說了,直接看程式碼吧!
import tkinter as tk from tkinter import ttk win = tk.Tk() win.title("Python GUI") # 新增標題 ttk.Label(win,text="Chooes a number").grid(column=1,row=0) # 新增一個標籤0 ttk.Label(win,text="Enter a name:").grid(column=0,row=0) # 設定其在介面中出現的位置 # button被點選之後會被執行 def clickMe(): # 當acction被點選時,該函式則生效 action.configure(text='Hello ' + name.get() + ' ' + numberChosen.get())#設定button顯示的內容 print('check3 is %d %s' % (chvarEn.get(),type(chvarUn.get()))) action = ttk.Button(win,text="Click Me!",command=clickMe) # 建立一個按鈕,text:顯示按 action.grid(column=2,row=1) # 設定其在介面中出現的位置 # 文字框 name = tk.StringVar() # StringVar是Tk庫內部定義的字串變數型別,在這裡用於管理 #部件上面的字元;不過一般用在按鈕button上。改變StringVar,按鈕上的文字也隨之改變。 nameEntered = ttk.Entry(win,width=12,textvariable=name) # 建立一個文字框,字元長度為12, #內容繫結到name,方便clickMe呼叫 nameEntered.grid(column=0,row=1) # 設定其在介面中出現的位置 nameEntered.focus() # 當程式執行時,游標預設會出現在該文字框中 # 一個下拉列表 number = tk.StringVar() numberChosen = ttk.Combobox(win,textvariable=number,state='readonly') numberChosen['values'] = (1,2,4,42,100) # 設定下拉列表的值 numberChosen.grid(column=1,row=1) # 設定其在介面中出現的位置 column代表列 row 代表行 numberChosen.current(4) # 設定下拉列表預設顯示的值,0為numberChosen['values'] 的下標值 # 複選框 chVarDis = tk.IntVar() # 用來獲取複選框是否被勾選,通過chVarDis.get()來獲取其的狀態,#其狀態值為int型別 勾選為1 未勾選為0 check1 = tk.Checkbutton(win,text="Disabled",variable=chVarDis,state='disabled') # text為複選框 #後面的名稱,variable將該複選框的狀態賦值給一個變數,當state='disabled'時, #該複選框為灰色,不能點的狀態 check1.select() # 該複選框是否勾選,select為勾選,deselect為不勾選 check1.grid(column=0,row=4,sticky=tk.W) # sticky=tk.W 當該列中其他行或該行中的其他列的 #某一個功能拉長這列的寬度或高度時,設定該值可以保證本行保持左對齊, #N:北/上對齊 S:南/下對齊 W:西/左對齊 E:東/右對齊 chvarUn = tk.IntVar() check2 = tk.Checkbutton(win,text="UnChecked",variable=chvarUn) check2.deselect() check2.grid(column=1,sticky=tk.W) chvarEn = tk.IntVar() check3 = tk.Checkbutton(win,text="Enabled",variable=chvarEn) check3.select() check3.grid(column=2,sticky=tk.W) win.mainloop() # 當呼叫mainloop()時,窗口才會顯示出來
補充知識:【tkinter】填坑 解決Entry、Label不能修改text、image等屬性的問題
tkinter中定義一個輸入,如:
input =Entry(root).pack()
不等於以下定義
input =Entry(root) input.pack()
後者定義後直接佈局,返回的不是Entry()控制元件本身,沒有entry所有的一些方法如get()等
按照前者定義 input =Entry(root).pack() 後,可利用input.get() 獲得輸入框的文字資訊。
利用 input['text']可修改Entry()文字框的文字內容。Label等控制元件同理,如法還可以修改Label['image']實現動態顯示圖片等操作。
以上這篇python tkinter之 複選、文字、下拉的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。