Radio Button (Single Choice)

ในการใช้งาน TKinter Radio Button เราต้องเรียกใช้ messagebox ก่อน

from tkinter.messagebox import *

จากนั้นสร้างตัวเลือกเตรียมไว้ ในตัวอย่างนี้ผมจะให้เลือกภาษาในการเขียนโปรแกรมที่ชื่นชอบ

Radiobutton(text="Python").grid(row=0,column=0)
Radiobutton(text="C++").grid(row=0,column=1)
Radiobutton(text="HTML").grid(row=0,column=2)
Radiobutton(text="PHP").grid(row=0,column=3)
Radiobutton(text="SWIFT").grid(row=0,column=4)

ตอนนี้หาเรา run code ดูจะพบว่ามีการเลือกไว้แล้วทุกข้อ สาเหตุเพราะ ณ เวลานี้ Radiobutton ต่างอยู่กันคนละกลุ่มเราต้องเอามันมารวมกันก่อนแล้วจึงเลือกเอาหนึ่งในกลุ่มนี้ออกมาทำงาน ดังนั้นเราจะ กำหนดกลุ่ม จากนั้นระบุตัวแปร และ value ให้กับ Radiobutton 

lang = IntVar()

Radiobutton(text="Python", variable=lang, value=1).grid(row=0,column=0)
Radiobutton(text="C++", variable=lang, value=2).grid(row=0,column=1)
Radiobutton(text="HTML", variable=lang, value=3).grid(row=0,column=2)
Radiobutton(text="PHP", variable=lang, value=4).grid(row=0,column=3)
Radiobutton(text="SWIFT", variable=lang, value=5).grid(row=0,column=4)

ในขั้นตอนต่อไปนี้จะเป็นการดึงข้อมูลที่เลือกออกมาใช้งาน การเอาข้อมูลที่ถูกเลือกออกมาแสดงต้องใช้ Function ในการแสดงผลในที่นี้ผมสร้าง Function ขึ้นมาเพื่อนำข้อมูลที่ถูกเลือกออกมาแสดงก่อน โดยการสร้าง Function ต้องเขียนให้มาก่อนที่จะเริ่มจัดกลุ่ม Radiobutton เพื่อรอรับข้อมูลที่ผู้ใช้เลือก

def showChoice():
    choice = lang.get()
    if choice == 1:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา Python")
    elif choice == 2:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา C++")
    elif choice == 3:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา HTML")
    elif choice == 4:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา PHP")
    else:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา SWIFT")

เอา function command ไปยัดลงใน Radiobutton 

from tkinter import *
import tkinter
from tkinter.messagebox import *

root = Tk()
root.title("My GUI")
root.geometry("500x500")

def showChoice():
    choice = lang.get()
    if choice == 1:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา Python")
    elif choice == 2:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา C++")
    elif choice == 3:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา HTML")
    elif choice == 4:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา PHP")
    else:
        tkinter.messagebox.showinfo("แจ้งเตือน", "คุณเลือกภาษา SWIFT")

lang = IntVar()
lang.set(1) # set defult at Python

Radiobutton(text="Python", variable=lang, value=1).grid(row=0,column=0)
Radiobutton(text="C++", variable=lang, value=2).grid(row=0,column=1)
Radiobutton(text="HTML", variable=lang, value=3).grid(row=0,column=2)
Radiobutton(text="PHP", variable=lang, value=4).grid(row=0,column=3)
Radiobutton(text="SWIFT", variable=lang, value=5).grid(row=0,column=4)

root.mainloop()

ถ้าผ่านมาถึงตรงนี้ได้ก็สำเร็จแล้วครึ่งนึง ในขั้นตอนถัดไปจะเป็นการเลือกข้อมูลที่มากกว่า 1 ค่า ออกมาทำงานโดยเราจะใช้ checkbox มาทำงาน