python-tkinter学习(二)

本文详细介绍了Python的tkinter库中常用的几种控件,包括radiobutton选择按钮的使用,通过l.config()更新提示信息;scale尺度-进度条的配置,如范围、方向和长度设置;checkbutton勾选项的创建,利用onvalue和offvalue进行状态判断;以及canvas画布的运用,展示了在画布上放置图片、绘制图形并实现动态交互的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.radiobutton选择按钮

定义一个label作为提示框,
注意l.config()可以更新label中的text内容
tk.radiobutton()中传入的参数

import tkinter as tk

window = tk.Tk()
window.title("my window")
window.geometry('200x200')

var = tk.StringVar()  # 定义一个变量
l = tk.Label(window, bg='yellow', width=20, text='empty')
l.pack()


def print_selection():
    l.config(text='you have selected ' + var.get())


# 在window上显示为Option A,当选中时,将variable的var赋值为value:A
r1 = tk.Radiobutton(window, text='Option A', variable=var, value='A', command=print_selection)
r1.pack()

r2 = tk.Radiobutton(window, text='Option B', variable=var, value='B', command=print_selection)
r2.pack()

r3 = tk.Radiobutton(window, text='Option C', variable=var, value='C', command=print_selection)
r3.pack()

window.mainloop()

运行如图:
在这里插入图片描述

6.scale尺度-进度条

tk.Scale(),注意参数,描述,从5-11,from_下面有个杠,orient为方向,length为长度,展示值设置为不显示0表示false,单位长度tickinterval为3,保留小数位数resolution
注意:command有一个默认的传入值,为标度的值,v

import tkinter as tk

window = tk.Tk()
window.title("my window")
window.geometry('200x200')

l = tk.Label(window, bg='yellow', width=20, text='empty')
l.pack()


def print_selection(v):
    l.config(text='you have selected ' + v)


s = tk.Scale(window, label='try me', from_=5, to=11, orient=tk.HORIZONTAL,
             length=200, showvalue=0, tickinterval=3, resolution=0.01, command=print_selection)
s.pack()

window.mainloop()

运行如图:
在这里插入图片描述

7.checkbutton勾选项

tk.Checkbutton()表示勾选项,
注意传入参数:勾选上onvalue=1,未勾选offvalue=0,判断值进行函数label更新内容。

import tkinter as tk

window = tk.Tk()
window.title("my window")
window.geometry('200x200')

l = tk.Label(window, bg='yellow', width=20, text='empty')
l.pack()


def print_selection():
    if (var1.get() == 1) and (var2.get() == 0):
        l.config(text='I love only python.')
    elif (var1.get() == 0) and (var2.get() == 1):
        l.config(text='I love only C++.')
    elif (var1.get() == 0) and (var2.get() == 0):
        l.config(text='I do not love either.')
    else:
        l.config(text='I love both.')


var1 = tk.IntVar()
var2 = tk.IntVar()
c1 = tk.Checkbutton(window, text='Python', variable=var1, onvalue=1, offvalue=0, command=print_selection)
c2 = tk.Checkbutton(window, text='C++', variable=var2, onvalue=1, offvalue=0, command=print_selection)
c1.pack()
c2.pack()

window.mainloop()

运行如下:
在这里插入图片描述

8.Canvas画布

我们创建一个画布,在上面放图片,画线,画圆形,画方形,
并设置button,按一下,方形往下移动2个单位。
注意:放图片时设置位置,nw左上角为0,0。
在这里插入图片描述

import tkinter as tk

window = tk.Tk()
window.title("my window")
window.geometry("400x400")

canvas = tk.Canvas(window, bg='blue', height=200, width=400)
image_file = tk.PhotoImage(file='ins.gif')
image = canvas.create_image(0, 0, anchor='nw', image=image_file)
x0, y0, x1, y1 = 50, 50, 80, 80
line = canvas.create_line(x0, y0, x1, y1)  # 画个线
oval = canvas.create_oval(x0, y0, x1, y1, fill='red')  # 画个圆形
arc = canvas.create_arc(x0+30, y0+30, x1+30, y1+30, start=0,extent=180)  # 画个扇形,从0度打开到180度
rect = canvas.create_rectangle(100,30,120,50) # 正方形
canvas.pack()


def moveit():
    # 把正方形往下移动
    canvas.move(rect,0,2)  # 移动rect,x不移动,y每次移动2个单位


b = tk.Button(window, text='move', command=moveit).pack()

window.mainloop()

运行如图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值