# 選像鈕-核取方塊 ###### tags: `活用tkinter – 學習運用GUI` ## 基本的選項鈕 * 點擊型式 ```python= from tkinter import * def sel(): num = var.get() if num == 1: label.config(text = "你是男的") else: label.config(text = "你是女的") root = Tk() root.title("python-tkinter") root.geometry("600x600") root.config(bg = "lightgreen") var = IntVar() var.set(1) # 預設男性 label = Label(root, text = "預設", bg = "lightblue", width = 30) label.pack() man = Radiobutton(root, text = "男的", variable = var, value = 1, command = sel) man.pack() girl = Radiobutton(root, text = "女的", variable = var, value = 2, command = sel) girl.pack() root.mainloop() ``` * 結果 ![](https://i.imgur.com/sY8yJAY.png) * 也可以修改成 :point_down: ```python= from tkinter import * def sel(): label.config(text = "你是 " + var.get()) var = StringVar() var.set("男生") label = Label(root, text = "預設", bg = "lightblue", width = 30) label.pack() man = Radiobutton(root, text = "男的", variable = var, value = "男生", command = sel) girl = Radiobutton(root, text = "女的", variable = var, value = "女生", command = sel) # 此為修改過的部分 ``` * 應用在字典上 ```python= from tkinter import * def sel(): label.config(text = "你是 " + gems[var.get()]) gems = {0 : "男的", 1 : "女的" } var = IntVar() var.set("0") label = Label(root, text = "預設", bg = "lightblue", width = 30) label.pack() for val, gem in gems.items(): Radiobutton(root, text = gem, variable = var, value = val, command = sel).pack() root.mainloop() ``` * 結果應該都是一樣的 ## 盒子選項鈕 ```python= for val, gem in gems.items(): Radiobutton(root, indicatoron = 0, width = 30, text = gem, variable = var, value = val, command = sel).pack() ``` * 結果 ![](https://i.imgur.com/49rKTO6.png) ## 加上圖片的按鈕 * 圖片 :point_down: ![](https://i.imgur.com/E9TloNN.jpg) * 女 ![](https://i.imgur.com/dWSanbz.png) * 範例 ```python= from tkinter import * from PIL import Image, ImageTk def sel(): label.config(text = "你是 " + var.get()) root = Tk() root.title("python-tkinter") root.geometry("1000x1000") root.config(bg = "lightgreen") boy = Image.open("b.jpg") boy = ImageTk.PhotoImage(boy) girl = Image.open("g.jpg") girl = ImageTk.PhotoImage(girl) var = StringVar() var.set("男的") label = Label(root, text = "預設", bg = "lightblue", width = 100, height = 6) label.pack() rb = Radiobutton(root, image = boy, variable = var, value = "男的", command = sel) rb.place(x = 310, y = 100, width = 400, height = 400) rg = Radiobutton(root, image = girl, variable = var, value = "女的", command = sel) rg.place(x = 310, y = 600, width = 400, height = 400) root.mainloop() ``` * 結果 ![](https://i.imgur.com/ZcwRNKP.png) ## 核取方塊 * 簡單的型式 ```python= from tkinter import * root = Tk() root.title("python-tkinter") root.geometry("500x500") root.config(bg = "lightgreen") label = Label(root, text = "預設", bg = "lightblue", width = 30) label.grid(row = 0) var1 = IntVar() boy_btn = Checkbutton(root, text = "男", variable = var1) boy_btn.grid(row = 1, sticky = W) var2 = IntVar() girl_btn = Checkbutton(root, text = "女", variable = var2) girl_btn.grid(row = 2, sticky = W) root.mainloop() ``` * 結果 ![](https://i.imgur.com/HHHIuQc.png) {%hackmd S1DMFioCO %}