如何让tkinter处理复选框并调用某些功能?

时间:2016-12-16 05:05:56

标签: python user-interface tkinter

我打算在这里做的是,比方说ping谷歌,而我勾选谷歌和ping雅虎,而我勾选雅虎或ping两个同时检查两者。在这种情况下,究竟是怎么做到的? 这是我正在使用的代码:

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()

1 个答案:

答案 0 :(得分:0)

{your_BooleanVar}.get()返回值TrueFalse

试试这个:

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()