python界面开发 - Radiobutton:单选按钮

本文探讨了Python的多种图形界面开发库,如Tkinter、PyQt、wxPython等,并详细介绍了Tkinter中的Radiobutton及其用法,包括单选按钮的创建、值定义、获取和点击事件。同时,提到了GUI设计原则和Tkinter开发的基本组件和实例。
摘要由CSDN通过智能技术生成

1. python图形界面开发

Python作为一种高级编程语言,具有简单易学、开发效率高等优点,近年来备受关注。Python的图形界面开发也是其应用领域之一。本文将从多个角度分析Python图形界面开发。

  • 一、Python图形界面开发——Tkinter

  • 二、Python图形界面开发——PyQt

  • 三、Python图形界面开发——wxPython

  • 四、Python图形界面开发—— PyGTK

  • 五、Python图形界面开发—— Kivy

  • 六、Python图形界面开发——可视化工具

1.1. Python图形界面开发——Tkinter

Python自带的GUI开发工具包,可以创建简单的GUI应用程序。

Tkinter是Python自带的GUI开发库,它是一个跨平台的开发库,可在多个操作系统上使用。Tkinter提供了丰富的GUI控件,如按钮、标签、文本框等,可以方便地创建各种GUI应用。此外,Tkinter的文档和教程也非常全面,易于入门。

Tkinter是Python自带的GUI工具包,它是一个跨平台的工具包,可以在Windows、Linux和MacOS等操作系统上运行。Tkinter是基于Tk GUI工具包的Python接口,TkGUI工具包是一个用于创建GUI应用程序的工具包,最初是为Tcl语言设计的,后来被移植到了其他语言中,包括Python。

1.2. Python图形界面开发——PyQt

一个基于Qt库的Python GUI开发工具包,提供了丰富的GUI组件和功能。

PyQt是一个用于开发Python GUI应用的工具包,它是基于Qt库开发的。PyQt提供了与Qt相同的GUI控件,并且还提供了一些独特的控件,如日期选择器、颜色选择器等。PyQt的文档也很全面,但是由于它不是Python自带的库,所以需要先安装。

1.3. Python图形界面开发——wxPython

基于wxWidgets库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。

wxPython也是一个用于开发Python GUI应用的工具包,它是基于wxWidgets库开发的。wxPython提供了与wxWidgets相同的GUI控件,可在多个操作系统上使用。wxPython的文档和教程也很全面,但与PyQt相比,它的学习曲线稍微陡峭一些。

1.4. Python图形界面开发—— PyGTK:基于GTK

PyGTK:基于GTK+库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。

1.5. Python图形界面开发—— Kivy

Kivy:一个跨平台的Python GUI开发框架,专注于创建移动应用程序和多点触控应用程序。

1.6. Python图形界面开发——可视化工具

除了以上三种GUI开发库外,还有一些Python可视化工具,如Matplotlib、Seaborn、Plotly等,它们可以用于数据可视化、绘制图表等。这些工具不仅能够提供强大的图形绘制功能,而且还可以与GUI库相结合,实现更加丰富多彩的GUI应用。

1.7. Python图形界面开发——GUI设计原则

在进行Python图形界面开发时,需要遵循一些GUI设计原则,如界面简洁、易用性高、反应速度快等。此外,还需要注意界面的美观度,选择合适的颜色、字体、图片等,以提高用户体验。

2. Tkinter 开发

使用Tkinter,可以快速地创建GUI应用程序,Tkinter提供了一系列的GUI组件,如按钮、标签、文本框、滚动条、列表框等,可以通过这些组件来构建GUI界面。Tkinter还提供了一些布局管理器,可以更方便地管理和布局GUI组件。

常用控件包括:

  • Button 按钮

  • Label 提示信息,用于显示文本和图像。

  • Message:类似于Label,但可以自动换行

  • Entry 文本框,用于输入单行文本。

  • Text文字区域,用于输入多行文本。

  • OptionMenu 菜单

  • ComboBox 下拉框

  • Menu 右键菜单

  • Checkbutton 用于创建复选框,用于选择一个或多个选项。

  • Radiobutton:用于创建单选按钮, 用于选择一项。

  • Scale:用于创建滑动条, 用于选择一个范围内的值。

  • Listbox:用于创建列表框

  • 布局管理

3. Radiobutton:单选按钮

3.1. 格式说明
radiobutton1 = Radiobutton(root, text="Option 1", variable=var, value=1)
  • var 为变量的名字,用于定义接收 Radiobutton 选中后的取值 ;

  • variable=var 用于设置 选中后的值,赋值给哪个具体的变量

  • value= 表示选中当前 选项后,设置给 var 变量的具体值(var 为变量的名字);

3.2. 定义整数类型的值

from tkinter import *
root = Tk()

var = IntVar()
radiobutton1 = Radiobutton(root, text="Option 1", variable=var, value=1)
radiobutton2 = Radiobutton(root, text="Option 2", variable=var, value=2)
radiobutton1.pack()
radiobutton2.pack()
root.mainloop()


3.3. 定义字符串类型的值

import tkinter as tk

var = tk.StringVar()
var.set('W')

radiobutton1 = tk.Radiobutton(self, text='男', value='M', variable=var)
radiobutton2 = tk.Radiobutton(self, text='女', value='W', variable=var)


3.4. 获取值

var.get()

3.5. 点击事件

tk.Radiobutton(...,  command=on_radiobutton_selected)

示例:


import tkinter as tk


def on_radiobutton_selected():
    if sex_type == "M":
        print("Radiobutton M被选中")
    elif sex_type == "W":
        print("Radiobutton M被选中")
    else:
        print("Radiobutton 未知被选中")

var = tk.StringVar()
var.set('W')

radiobutton1 = tk.Radiobutton(self, text='男', value='M', variable=sex_type command=on_radiobutton_selected)
radiobutton2 = tk.Radiobutton(self, text='女', value='W', variable=sex_type command=on_radiobutton_selected)


3.5. 示例

import tkinter as tk
from tkinter import *
import webbrowser
from tkinter import messagebox


class Application(Frame):
    """一个经典的GUI程序的写法"""

    def __init__(self, master=None):
        super().__init__(master)  # super代表的是父类的定义,而不是父类对象
        self.master = master
        self.pack()
        self.createWidget()

    def createWidget(self):
        """创建组件"""
        self.v = tk.StringVar()
        self.v.set('W')

        self.r1 = tk.Radiobutton(self, text='男', value='M', variable=self.v)
        self.r2 = tk.Radiobutton(self, text='女', value='W', variable=self.v)

        self.r1.pack(side='left')
        self.r2.pack(side='left')

        Button(self, text='确定', command=self.confim).pack(side='left')

    def confim(self):
        messagebox.showinfo('测试', '你选择的性别是:' + self.v.get())


if __name__ == "__main__":
    root = Tk()
    root.geometry('400x60+200+200')
    app = Application(master=root)
    root.mainloop()





在这里插入图片描述

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛魔王的小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值