简体   繁体   中英

How do i get tkinter to process checkbox and call certain function?

What i intend to do here is, lets say, ping google while i tick google and ping yahoo while i tick yahoo or ping both while check both. How exactly do that in this case? This is the code I'm working with:

from tkinter import *
#import os
master = Tk()
def select_ping():
    vardata1 = var1.get()
    vardata2 = var2.get()
    datas = [vardata1, vardata2]
    for data in datas:
        print ("Selected Items: ",datas)
        #This is what i actually intend to do:
        #if vardata1 is selected do:
        #os.system("ping www.google.com -c 2")
        #if vardata2 is selected do:
        #os.system("ping www.yahoo.com -c 2")
        #if both selected do both else exit.
        break
Label(master, text="Select to ping.").grid(row=0, sticky=W)
var1 = BooleanVar()
Checkbutton(master, text="Google", variable=var1).grid(row=1, sticky=W)
var2 = BooleanVar()
Checkbutton(master, text="Yahoo", variable=var2).grid(row=2, sticky=W)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Ping', command=select_ping).grid(row=3, column=1, sticky=W, pady=4)
mainloop()

{your_BooleanVar}.get() return value True or False

Try with this:

import os
from tkinter import *
master = Tk()


def select_ping():
    if var1.get():
        os.system("ping www.google.com -c 2")
    if var2.get():
        os.system("ping www.yahoo.com -c 2")

Label(master, text="Select to ping.").grid(row=0, sticky=W)
var1 = BooleanVar()
Checkbutton(master, text="Google", variable=var1).grid(row=1, sticky=W)
var2 = BooleanVar()
Checkbutton(master, text="Yahoo", variable=var2).grid(row=2, sticky=W)
Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Ping', command=select_ping).grid(row=3, column=1, sticky=W, pady=4)
master.mainloop()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM