Python tkinter (8) ——Spinbox控件

Python的标准Tk GUI工具包的接口

 

tkinter系列文章

python tkinter窗口简单实现

Python tkinter (1) —— Label标签

Python tkinter (2) —— Button标签

Python tkinter (3) —— Entry标签

Python tkinter (4) —— Text控件

Python tkinter (5) 选项按钮与复选框

Python tkinter (6) ——Listbox

Python tkinter (7) ——Scale控件

Spinbox

数值范围控件

简单示例

创建一个简单的0-100切换数值的输入框。

示例如下:

import tkinter

tk = tkinter.Tk()
tk.title('简单示例')
tk.geometry('300x200+200+20')
sp1 = tkinter.Spinbox(tk, from_=0, to=100)
sp1.pack()

tk.mainloop()

效果如下:

步长

increment:步长, 默认为1;设置后则递增或递减相应数值。

示例如下:

sp1 = tkinter.Spinbox(tk, from_=0, to=100, increment=5)

Values

数值列表,设置后from_和to及increment设置将不在生效,数值将覆盖为values设置数值。

所以最好不要与from_ to increment同时使用,此控件很少使用。

示例如下:

sp1 = tkinter.Spinbox(tk, from_=0, to=100, 
                      increment=5, 
                      values=(2, 4, 6, 8, 10))

效果如下:

绑定变量

涉及到赋值和取值就需要先绑定变量。

示例如下:

# 绑定变量
spv = tkinter.StringVar()
sp1 = tkinter.Spinbox(tk, from_=0, to=100,
                      textvariable=spv)

赋值

使用绑定的变量来设置控件的值为22.

示例如下:

spv.set(22)

 

取值

使用绑定的变量来获取控件的值。

示例如下:

print(spv.get())

绑定事件

绑定事件后只要值发生改变就会触发绑定的函数。

示例如下:

def update_handle():
    print(spv.get())

# 绑定变量
spv = tkinter.StringVar()
sp1 = tkinter.Spinbox(tk, from_=0, to=100,
                      textvariable=spv,
                      command=update_handle)

效果如下:

点击修改值后,会在控制台打印最新改变的值。

总结

本文主要是Python tkinter Spinbox数值范围控件介绍及使用示例。

很好,这是一个关于编程的问题,我可以回答。您可以使用 Python tkinter 模块中的 Calendar 组件来创建一个日历控件。您可以将此组件添加到您的应用程序中,并以不同的方式自定义它。示例代码如下: ```python import tkinter as tk from tkinter import ttk import calendar class Calendar: def __init__(self, master): self.master = master self.master.title("Calendar") self.cal = calendar.Calendar() self.year = tk.IntVar() self.month = tk.IntVar() self.year.set(2022) self.month.set(6) self.year_label = ttk.Label(self.master, text="Year:") self.month_label = ttk.Label(self.master, text="Month:") self.year_spinbox = tk.Spinbox(self.master, from_=1, to=9999, width=5, textvariable=self.year) self.month_spinbox = tk.Spinbox(self.master, from_=1, to=12, width=3, textvariable=self.month) self.year_label.grid(row=0, column=0, sticky="w") self.month_label.grid(row=0, column=1, sticky="w") self.year_spinbox.grid(row=1, column=0, sticky="w") self.month_spinbox.grid(row=1, column=1, sticky="w") self.calendar_widget = ttk.Treeview(self.master, selectmode="none", columns=("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"), show="headings") self.calendar_widget.column("Mon", width=50, anchor="c") self.calendar_widget.column("Tue", width=50, anchor="c") self.calendar_widget.column("Wed", width=50, anchor="c") self.calendar_widget.column("Thu", width=50, anchor="c") self.calendar_widget.column("Fri", width=50, anchor="c") self.calendar_widget.column("Sat", width=50, anchor="c") self.calendar_widget.column("Sun", width=50, anchor="c") self.calendar_widget.heading("Mon", text="Mon") self.calendar_widget.heading("Tue", text="Tue") self.calendar_widget.heading("Wed", text="Wed") self.calendar_widget.heading("Thu", text="Thu") self.calendar_widget.heading("Fri", text="Fri") self.calendar_widget.heading("Sat", text="Sat") self.calendar_widget.heading("Sun", text="Sun") self.populate_calendar() self.calendar_widget.grid(row=2, column=0, columnspan=2) def populate_calendar(self): year = self.year.get() month = self.month.get() month_days = self.cal.monthdayscalendar(year, month) for i in self.calendar_widget.get_children(): self.calendar_widget.delete(i) for date in month_days: self.calendar_widget.insert("", tk.END, values=date) root = tk.Tk() app = Calendar(root) root.mainloop() ``` 此代码将创建一个包含 “年” 和 “月” 两个标签的窗口。在其中,可以选择年份和月份,然后在 “日历” 中显示该月份的日历。 希望这对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JSON_L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值