1. 程式人生 > 程式設計 >python tkinter之 複選、文字、下拉的實現

python tkinter之 複選、文字、下拉的實現

我就廢話不多說了,直接看程式碼吧!

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之 複選、文字、下拉的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。