第13章数值调整控件(Spinbox)
Spinbox由三部分组成:输入框、上箭头和下箭头。Spinbox控件规定用户只能选取特定范围内的数值。通过点击上下箭头来改变数值。有三种方式改变数值:
(1)点击上箭头
每点击一次,按照设置增加数值。可以设定达到最大值后,再从最小值开始循环。
(2)点击下箭头
每点击一次,按照设置减小数值。可以设定达到最小值后,再从最大值开始循环
(3)直接在输入框中输入数值
13.1 属性
属性参数
|
描述
|
activebackground
|
设置当Spinbox处于ACTIVE状态下的背景颜色
|
borderwidth
bd
|
设置边框宽度。默认值是1或2像素
|
buttonbackground
|
设置调节箭头的背景颜色
|
buttoncursor
|
指定当鼠标在调节箭头上方的鼠标样式
|
buttondownrelief
|
指定向下调节箭头的样式
默认值是RAISED
还可以设置为FLAT,SUNKEN,GROOVE和RIDGE
|
buttonuprelief
|
指定向上调节箭头的样式
默认值是RAISED
还可以设置为FLAT,SUNKEN,GROOVE和RIDGE
|
command
|
指定一个函数,当用户点击调节箭头的时候将自动调用该函数
注意:当用户直接在输入框中输入数据时并不会触发该函数
|
cursor
|
指定当鼠标在Spinbox上面的时候鼠标样式。默认值由系统指定
|
disabledbackground
|
设置当Spinbox处于DISABLED状态下的背景颜色
|
disabledforeground
|
设置当Spinbox处于DISABLED状态下的前景颜色
|
exportselection
|
指定选中的文本是否可以被自动复制到剪贴板
默认值是True
可以修改为False表示不会自动复制文本到剪贴板
|
font
|
指定Spinbox中文本的字体
默认值由系统指定
|
foreground
fg
|
设置前景(文本)颜色
默认值由系统指定
|
format
|
使用该选项设置选择数值的样式(from_和to指定范围,用户自行输入的不算)例如使用format='%10.4f’表示显示的数值占10位,小数点后保留4位
|
from_
|
该选项和to选项共同指定一个范围内的数值
|
highlightbackground
|
指定当Spinbox没有获得焦点的时候高亮边框的颜色
默认值由系统指定,通常是标准背景颜色
|
highlightcolor
|
指定当Spinbox获得焦点的时候高亮边框的颜色
默认值由系统指定
|
highlightthickness
|
指定高亮边框的宽度
increment 该选项指定当用户每次点击调节箭头的时候递增递减的精度
例如from_=1, to=10, increment=0.5,那么每次用户点击调节箭头的时候,输入框中的数字递增递减0.5
|
insertbackground
|
指定输入光标的颜色
|
insertborderwidth
|
指定输入光标的边框高度
如果被设置为非0值,光标样式会被设置为RAISED
提示:将insertborderwidth设置的大一点才能看到效果
|
insertofftime
|
该选项控制光标的闪烁频率(灭)。单位是毫秒
|
insertontime
|
该选项控制光标的闪烁频率(亮)。单位是毫秒
|
insertwidth
|
指定光标的宽度。默认值是1或2像素
|
invalidcommand
invcmd
|
指定当输入框的内容“非法”时调用的函数
也就是指定当validateCommand选项指定的函数返回False时的函数
详见Entry组件
|
justify
|
定义如何对齐多行文本。使用LEFT,RIGHT或CENTER。默认值是ENTER
|
readonlybackground
|
设置当Spinbox处于“readonly”状态下的背景颜色
|
relief
|
指定边框样式
默认值是FLAT
另外你还可以设置SUNKEN,RAISED,GROOVE或RIDGE
|
repeatdelay
|
该选项指定鼠标左键点击上下箭头并保持,到输入框数值开始连续调整的延迟时间。默认值是300(毫秒)
|
repeatinterval
|
该选项指定鼠标左键紧按滚动条凹槽的响应间隔。默认值是100(毫秒)
|
selectbackground
|
指定输入框的文本被选中时的背景颜色
默认值由系统指定
|
selectborderwidth
|
指定输入框的文本被选中时的边框宽度
|
selectforeground
|
指定输入框的文本被选中时的文本颜色
|
state
|
Spinbox组件可以设置的状态:NORMAL,DISABLED或“readonly”(注意,这个是字符串。它跟DISABLED相似,但他支持选中和拷贝,只是不能修改,而DISABLED是完全禁止)
默认值是NORMAL
注意,如果此选项设置为DISABLED或”readonly”,那么调用insert()和delete()方法都会被忽略
|
takefocus
|
指定使用Tab键可以将焦点移动到输入框中
默认是开启的,可以将该选项设置为False避免焦点在此输入框中
|
textvariable
|
指定一个与输入框内容相关联的tkinter变量(通常是StringVar)
当输入框的内容发生改变时,该变量的值也会相应发生改变
|
to
|
该选项和from_选项共同指定一个范围的数值
increment选项设置每次点击调节箭头递增递减的精度
|
validate
|
该选项设置是否启用内容验证
|
validatecommand
vcmd
|
该选项指定一个验证函数,用于验证输入框内容是否合法
验证函数需要返回True或False表示验证结果
注意,该选项只有当validate的值非’none’时才有效
|
values
|
提供两个方法限定用户输入的内容,一种是通过from_和to选项设置范围,另一种则是将可选值以元组的形式赋给values选项
例如values=(“ds”, “sad”, “aesf”)则允许用户在这四个字符串中选择
|
width
|
设置输入框的宽度,以字符为单位
默认值是20。对于变宽字体来说,组件的实际宽度等于字体的平均宽度乘以width选项的值
|
wrap
|
默认情况下(False),当输入框中的值是第一个(最后一个)的时候,再点击向上(向下)调节箭头,内容不会改变。
当该选项的值设置为True,则当输入框中的值是第一个(最后一个)的时候,再点击向上(向下)调节箭头,内容将回到最后一个(第一个)。
提示:其实就是开启循环的意思
|
xscrollcommand
|
与scrollbar(滚动条)组件相关联
如果你觉得用户输入的内容会超过该组件的输入框宽度,那么可以考虑设置该选项
|
13.1.1 activebackground
|
|
鼠标经过Spinbox的背景颜色。不过无效。
|
|
13.1.2 background(bg)
|
|
设置Spinbox的背景颜色。
|
|
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,bg='red')
b1.pack()
root.mainloop()
结果:
13.1.3 borderwidth(bd)
设置Spinbox的边框。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,bd=20)
b1.pack()
root.mainloop()
结果:
13.1.4 buttonbackground
设置上下箭头的背景颜色
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,buttonbackground='blue')
b1.pack()
root.mainloop()
结果:
13.1.5 buttoncursor
设置鼠标位于上下按键上方时,鼠标的形状。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,buttoncursor='spider')
b1.pack()
root.mainloop()
13.1.6 buttondownrelief 和buttonuprelief
设置上下按键的3D效果。不过在我的windows系统中不起作用
13.1.7 command
上下按钮的回调函数。在输入框中的内容发生变化时,不是触发该函数。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
def updown(*args):
print(b1.get())
b1=tk.Spinbox(root,command=updown,from_=0,to=10)
b1.pack()
root.mainloop()
13.1.8 cursor
鼠标在Spinbox中输入框上面时候的光标形状。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,cursor='spider')
b1.pack()
root.mainloop()
13.1.9 disabledbackground 和disabledforeground
Spinbox的状态为DISABLED状态时候的背景和前景颜色
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,from_=10,to=20,
disabledforeground='red',
state=tk.DISABLED,
disabledbackground ='blue')
b1.pack()
root.mainloop()
结果:
13.1.10 font
指定Spinbox的字体大小。关于字体的详细说明见3.3.3节
13.1.11 foreground(fg)
指定Spinbox的文本和上下箭头颜色。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,from_=10,to=20,fg='red')
b1.pack()
root.mainloop()
结果:
13.1.12 format
格式化Spinbox控件中输入框的内容。比如format=’%4.2f’就表示数字显示长度为4,其中小数部分占2位。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,from_=10,to=20,format='%4.2f')
b1.pack()
root.mainloop()
说明:如果不设置format,正常的显示是没有小数部分的。设置了format,会根据设置的格式显示数值。
13.1.13 highlightbackground,highlightcolor和highlightthickness
设置Spinbox失去输入焦点和获得输入焦点时候的边框,此边框的宽度由highlightthickness设置。参见6.1.10的介绍
13.1.14 increment
定义Spinbox每次调整的步长。比如increment=0.3,表示每次增加或者减少0.3的数值。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,from_=10,to=20,increment='0.3')
b1.pack()
root.mainloop()
结果:
13.1.15 insertbackground
参见6.1.11。
13.1.16 insertborderwidth
参见6.1.12。
13.1.17 insertofftime 和 insertontime
参见6.1.13。
13.1.18 insertwidth
参见6.1.14。
13.1.19 invalidcommand(invcmd)
参见6.1.15。
13.1.20 justify
设定输入框内文本的对齐方式。取值有LEFT, CENTER, RIGHT三种。参见6.1.16。
13.1.21 readonlybackground
当Spinbox为只读模式时,可以通过readonlybackground设置背景值。参见6.1.17。
13.1.22 relief
设置Spinbox的边框3D效果,设置输入控件的边框3D效果,取值范围是:flat、groove、raised、ridge、solid和sunken。详细描述见3.3.5节。
13.1.23 repeatdelay
鼠标点击上下调整箭头并保持,到输入框中的数值开始连续调整之前的延迟时间。默认是300毫秒。具体见12.1.17的说明。
13.1.24 repeatinterval
鼠标按住上下箭头后,输入框中的数值开始连续调整。每次调整的间隔由repeatinterval来设定。默认值是100毫秒。具体用见12.1.18节的说明。
13.1.25 selectbackground
选中文本之后的背景颜色。默认是黑色的。参见6.1.19。
13.1.26 selectborderwidth
选中区域的边框宽度。参见6.1.20。
13.1.27 selectforeground
选中区域的文本的颜色。参见6.1.21
13.1.28 state
Spinbox状态。参见6.1.23。
13.1.29 takefocus
Spinbox获得输入焦点。见前面其他章节的描述
13.1.30 textvariable
主要是关联tkinter的变量,来修改或者获得输入控件的数据。见6.1.25
13.1.31 from_和to
设置Spinbox数值的范围。from_是开始值,to是结束值。还有一种方式是通过values参数来设置。
from_和to的使用方法见前面的代码。
13.1.32 validate
vaidate是定义在何种条件下触发输入验证。参见6.1.26。
13.1.33 validatecommand(vcmd)
Validatecommand是验证输入内容的回调函数。参见6.1.26。
13.1.34 values
设置输入内容范围,可以有两种方法。一种是13.1.31节介绍的使用from_和to的方法。另外一种就是使用values来设定。把输入值设置成一个元组,通过values传递给控件。一般情况下是设置非数字内容。
如果同时使用了from_/to和values,Spinbox会优先使用values中的数值。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,values=('苹果','香蕉','葡萄','西瓜'))
b1.pack()
root.mainloop()
结果:
13.1.35 width
设置Spinbox的宽度。单位是字符。其实变化的是输入框,而非上下箭头。
13.1.36 wrap
这里的wrap不是折行显示,而是在输入框中数值达到最大或者最小的时候,是否从头或者从尾部循环开始。比如to=50,from_=10,当目前输入框中的数值已经是50的时候,继续点击上箭头,是否会从10循环开始。
默认的情况wrap=False,就是不会循环使用。数值调整到最大或者最小,就会停止调整。如果wrap=True,则会循环调整。
import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Spinbox(root,from_=10,to=15,wrap=True)
b1.pack()
root.mainloop()
13.1.37 xscrollcommand
设置滚动条来显示过长的内容。一般情况下,Spinbox不会出现内容很长的数值。具体的用法见6.1.28
tkinter-tabview
ttk中虽然添加了Notebook,但其功能过于简单,无法支持双击创建选项卡,删除选项卡等功能,于是自定义了tabview,有需要的朋友,可以参考在tkinter中自定义view的方法,自定义自己的view
import tkinter as tk
from tkinter import messagebox
from tabview import TabView
def create_body():
global body
return tk.Label(body, text="this is body")
def select(index):
print("current selected -->", index)
def remove(index):
print("remove tab -->", index)
SpinBox用于整数的显示与输入,一般显示为十进制,也可以显示二进制和十六进制的数,而且可以在显示框增加前缀和后缀
QDoubleSpinBox用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀和后缀
它们都是QAbstractSpinBox的子类,具有大多数相同的属性,只是参数类型不同。在UI设计器中进行页面设计时,就可以设置这些属性。
QSpinBox和QDoubleS...
spin
box相当于entry的扩展,除了直接在
spin
box中编辑或修改其值外,还可以通过上、下按钮来升序或降序地选择其值。
创建一个空的
spin
box
from
tkinter import Tk,
Spin
box,StringVar,Button
main_win = Tk()
main_win.title('渔道的
Spin
box控件')
width = 300
height = 300
main_win.geometry(f'{width}x{height}')
# 创建
spin
box
文章目录一、前言二、创建Spinbox三、运行四、结语
Spinbox组件(Tk8.4新增)是Entry组件的变体,用于从一些固定的值中选取一个,Spinbox组件跟Entry组件用法类似,区别是Spinbox可以通过范围或者元组指定允许用户输入的内容。
二、创建Spinbox
代码实现:
from tkinter import *
def callback():
print...
Spinbox小部件是一个标准的Tkinter的Entry小窗口部件的变体,它可以用来选择一个固定的值.
当用户只需要从极少的数值中进行选择的时候,就可以使用Spinbox取代Entry。
这里是一个简单的语法来创建这个widget:
w = Spinbox( master, option, ... )
master:这代表了父窗口.
int main(int argc, char *argv[])
QApplication app(argc, argv); //创建QApplication对象app管理应用程序
QWidget *w
python3-tkinter-3.6.8-18.el7.x86_64.rpm是用于CentOS 7操作系统的Python Tkinter模块的一个软件包。
Tkinter是Python语言的一个图形用户界面(GUI)库,用于创建各种桌面应用程序的图形界面。它是Python标准库的一部分,无需额外安装。
对于CentOS 7用户,如果需要使用Python中的Tkinter模块,可以通过安装python3-tkinter-3.6.8-18.el7.x86_64.rpm软件包来获取。该软件包提供了Python 3.x版本的Tkinter模块,并适用于64位CentOS 7操作系统。
要安装该软件包,首先需要下载对应的rpm文件。然后,可以使用yum工具来进行安装。打开终端,并以管理员身份运行以下命令:
sudo yum install python3-tkinter-3.6.8-18.el7.x86_64.rpm
该命令将自动处理软件包的安装和依赖关系。安装完成后,即可在Python中使用Tkinter模块进行图形界面应用程序的开发。
总之,python3-tkinter-3.6.8-18.el7.x86_64.rpm是用于CentOS 7操作系统的Python Tkinter模块的一个软件包,通过安装该软件包可以在Python中使用Tkinter库来创建图形界面应用程序。
Python 去除白色背景
MSUNC:
自然语言处理 - LSA
hxyyyyasd: