【第二集】Python GUI之Button、Checkbutton、Radiobutton

目录

Button

Checkbutton​    ​

Radiobutton


Button

Button 组件的绝大多数选项是和 Label 一样的,不过 Button 有一个功能就是接受用户的信息。Button 组件可以通过按钮上的文字和图标告诉用户按下去会发生什么,有什么功能。

Button 组件有一个叫做 command 的选项,用于指定一个函数或者方法。当用户点下按钮的时候,tkinter 就会自动的去调取这个函数或者方法。

添加一个按钮,在按钮被按下的时候将 Label 文本改变。想要文本发生改变,只需要设置一个 textvariable 的选项就可以了。

Checkbutton

Checkbutton 可实现复选选的效果

import tkinter
def pyCheckbutton():
    root = tkinter.Tk()
    v = tkinter.IntVar()    #需要一个tk变量,用于表示按钮是否被选中。默认情况下,未选中是0,选中是1
 
    c = tkinter.Checkbutton(root, text='测试一下', variable=v)  #variable用来表示按钮的状态(是否被按下)
    c.pack()
 
    l = tkinter.Label(root, textvariable=v)  #为了更直观的看出选中和未选中v的表现状态,可以将其显示在Label标签里
    l.pack()

    root.mainloop()


def pyCheckbutton2():
    root = tkinter.Tk()
    ALARMS = ['断站告警', '小区告警', '高频告警', '移网月报']
    #每一个按钮都需要一个存放变量的,所以这里用列表。后面用循环来添加 
    v = []  
 
    for alarm in ALARMS:
        #每一次都需要一个整形的tk变量用于每个存放按钮的状态,再追加到列表里去
        v.append(tkinter.IntVar())
        #依次显示每个girl的名字。每一次都要拿到最后一个元素,因此是-1
        b = tkinter.Checkbutton(root, text=alarm, variable=v[-1]) 
        #所有的Checkbutton左对齐。anchor用于指定显示位置,可以设置为N W S E NW WS SE EN(东南西北英文缩写) CENTER九个不同的值
        b.pack(anchor=tkinter.W) 
 
    tkinter.mainloop()

    

Radiobutton

Radiobutton 实现单选的效果,即互斥的效果。同一组内,所有的 Radiobutton 只能共享一个 variable 这个选项,并且要设置不同的 value 的值。当存在多个选项的时候,使用循环会更加简洁

import tkinter
def pyRadiobutton():
    root = tkinter.Tk()
    #多个按钮只需要一个变量
    v = tkinter.IntVar()  
 
    #variable只能是同一个变量。value的值必须不同才能互斥
    tkinter.Radiobutton(root, text='小区告警', variable=v, value=1).pack(anchor=tkinter.W)
    tkinter.Radiobutton(root, text='断站告警', variable=v, value=2).pack(anchor=tkinter.W)
    tkinter.Radiobutton(root, text='高频告警', variable=v, value=3).pack(anchor=tkinter.W)
    #原理是每一次点中一个按钮,会把value的值给v,给这个v说明点中了。再和其他的value值对比,都不是2,因此不显示
 
    tkinter.mainloop()


def pyRadiobutton2():
    root =tkinter.Tk()
    #多个按钮只需要一个变量
    v = tkinter.IntVar()  
 
    LANGS = [
        ('小区告警', 1),
        ('断站告警', 2),
        ('高频告警', 3),
        ('告警分析',  4)]
 
    v = tkinter.IntVar()
    v.set(1)
 
    for lang, num in LANGS:
        #indicatoron=False改变前面的小圆点为按钮形式
        b = tkinter.Radiobutton(root, text=lang, variable=v, value=num, indicatoron=False)
        #X是横向填充,Y是纵向填充
        b.pack(fill=tkinter.X)
    tkinter.mainloop()
    

         

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 Python 程序,利用 RadiobuttonCheckbutton 控件实现选择字体和颜色的功能: ```python from tkinter import * from tkinter import font from tkinter.colorchooser import askcolor class FontChooser: def __init__(self, master): self.master = master master.title("字体和颜色选择器") # 创建字体选择器 self.font_label = Label(master, text="选择字体:") self.font_label.pack() self.font_choice = StringVar() self.font_choice.set("Arial") self.font_1 = Radiobutton(master, text="Arial", variable=self.font_choice, value="Arial") self.font_1.pack(anchor=W) self.font_2 = Radiobutton(master, text="Times New Roman", variable=self.font_choice, value="Times New Roman") self.font_2.pack(anchor=W) self.font_3 = Radiobutton(master, text="Courier New", variable=self.font_choice, value="Courier New") self.font_3.pack(anchor=W) # 创建颜色选择器 self.color_label = Label(master, text="选择颜色:") self.color_label.pack() self.color_choice = StringVar() self.color_choice.set("#000000") self.color_button = Button(master, text="选择颜色", command=self.choose_color) self.color_button.pack() # 创建文本框 self.text_label = Label(master, text="输入文本:") self.text_label.pack() self.text = Text(master) self.text.pack() # 创建按钮 self.ok_button = Button(master, text="确定", command=self.apply_font) self.ok_button.pack() def choose_color(self): color = askcolor() if color: self.color_choice.set(color[1]) def apply_font(self): chosen_font = font.Font(family=self.font_choice.get(), size=12) self.text.config(font=chosen_font, fg=self.color_choice.get()) root = Tk() my_gui = FontChooser(root) root.mainloop() ``` 在这个程序中,我们首先创建了一个 `FontChooser` 类,它包含字体选择器、颜色选择器、文本框和一个确定按钮。字体选择器使用 `Radiobutton` 控件,我们可以选择 Arial、Times New Roman 或 Courier New 三种字体中的一种。颜色选择器使用 `Checkbutton` 控件,当我们点击选择颜色按钮时,会弹出一个颜色选择对话框,我们可以从中选择颜色。最后,当我们点击确定按钮时,程序会根据我们的选择来应用字体和颜色到文本框中。 如果你希望在程序中添加更多的字体或颜色选项,只需要在 `FontChooser` 类中添加相应的 `Radiobutton` 或 `Checkbutton` 控件即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值