tkinter学习-选择按钮
阅读目录
- Checkbutton
- Radiobutton
- LabelFrame
checkbutton :
说明:多选框控件,用于在程序中提供多项选择框,但是处理“多选一”的问题,还是交给 Radiobutton 或 Listbox 组件来实现吧。
用法:使用 Checkbutton,你必须创建一个 Tkinter 变量用于存放按钮的状态:
from tkinter import *
root = Tk()
v1 = IntVar() #用来表示按钮是否选中
v2 = IntVar()
c1 = Checkbutton(root,text='python',variable=v1)
c2 = Checkbutton(root,text='java',variable=v2)
c1.pack()
c2.pack()
mainloop()
结果 :

用法:默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0。你可以使用 onvalue 和 offvalue 选项修改它们的值,例如下边代码,只要 var 被设置为“T”即选中状态, 设置为“F”则相反。
from tkinter import *
root = Tk()
v = IntVar()
v.set('T')
c = Checkbutton(root,text = '测试',variable = v,onvalue='T',offvalue='F')
c.pack()
l = Label(root,textvariable = v)
l.pack()
mainloop()
结果:

用法:如果选项多的话可以用列表,代码如下:
from tkinter import *
root = Tk()
GIRLS = ['西施','貂蝉','王昭君','杨玉环']
v = []
for girl in GIRLS:
v.append(IntVar()) #这里注意 IntVar()
b = Checkbutton(root,text=girl,variable=v[-1]) #这里注意 variable[-1]
b.pack(anchor=W) #这个是左对齐
mainloop()
把Checkbutton组件都向左对齐,可以设置pick()方法的anchor选项,
anchor选项指定显示的位置,有 N,S,W,E,等组成。
结果:

Radiobutton:
说明:单选按钮控件,显示一个单选的按钮状态,需要设置不同的value值。
from tkinter import *
root = Tk()
LANGS = [
('python',1),
('perl',2),
('c',3),
('java',4)]
v = IntVar() #这里注意
v.set(1) #默认是选第一个
for lang,num in LANGS:
b = Radiobutton(root,text=lang,variable=v,value=num)
b.pack(anchor=W)
mainloop()
结果:

如果不喜欢前面的小圆圈,还可以去掉前面的小圆圈,将indicatoron设置为False就可以去掉前面的小圆圈。
b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False)
b.pack(fill=X) #横向填充
LabelFrame:
说明:labelframe 是一个简单的容器控件,常用与复杂的窗口布局。
from tkinter import *
root = Tk()
group = LabelFrame(root,text="最好的脚本语言?",padx=5,pady=5)
group.pack(padx=10,pady=10)
LANGS=[
('python',1),
('java',2),
('c',3)]
v = IntVar()
v.set(1)
for long,num in LANGS:
b = Radiobutton(group,text=long,variable=v,value=num)
b.pack(anchor=W)
mainloop()
结果:

参考文献:
小甲鱼的python教学视频
tkinter学习-选择按钮的更多相关文章
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- tkinter学习-Lable&Button
tkinter学习-La&Bu 我的第一个Tkinter程序 Label组件的使用 Button组件的使用 1.我的第一个Tkinter程序 常用的属性: title:设置窗口的标题 geom ...
- python之tkinter学习目录
前言 下面的目录结构,采用的学习视频资料是网易云课堂中[莫凡]老师的,在目录的最下面的地方给出了对应的链接! 学习是逐渐积累起来的,代码也是!下面的每一篇中的对应代码,都秉承着这样的一个理念:代码是成 ...
- Python:GUI之tkinter学习笔记1控件的介绍及使用
相关内容: tkinter的使用 1.模块的导入 2.使用 3.控件介绍 Tk Button Label Frame Toplevel Menu Menubutton Canvas Entry Mes ...
- tkinter学习系列之(八) Canvas控件
目录 目录 前言 (一)carves创建方法 (二)carves的画图方法 目录 前言 由于最近想在tkinter里内嵌matplotlib,由于用到tkinter里的carves控件,先学习一下. ...
- python之GUI编程-tkinter学习
推荐几个学习网址:https://www.cnblogs.com/shwee/p/9427975.html https://cloud.tencent.com/developer/section/13 ...
- tkinter学习(5)messagebox、pack、grid和place方法
1.messagebox信息弹出框 1.1 代码: import tkinter as tk #导出tk模块 import tkinter.messagebox #导出弹出信息框 #定义窗口.标题.大 ...
- tkinter学习(4)frame、pack、canvas学习
1.frame和pack学习 1.1 代码: import tkinter as tk window = tk.Tk() window.title('my window') window.geomet ...
- tkinter学习(3)scale尺度条和menu菜单
1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...
随机推荐
- mysql 配置大小写敏感后不能重启
[问题现象] 在mysql的配置文件my.cnf配置lower_case_table_names=1后不能重启mysql,提示mysql.serviceJob for mysql.service fa ...
- 常用SQL语句写法(一)
<resultMap id="userResult" type="com.cloudwalk.shark.model.User"> <id p ...
- C 语言实例 - 判断元音/辅音
C 语言实例 - 判断元音/辅音 C 语言实例 C 语言实例 判断输入的字母是元音,还是辅音. 英语有26个字母,元音只包括 a.e.i.o.u 这五个字母,其余的都为辅音.y是半元音.半辅音字母,但 ...
- 51Nod 1873 初中的算术
大神的字符串快速幂 #include <iostream> #include <string> #include <algorithm> #include < ...
- error: unrecognized command line option "-std=c11" 解决办法
今天在安装php版本 grpc扩展的时候报错如下: cc1: error: unrecognized command line option "-std=c11" cc1: war ...
- UML建模 | Rose | 没有跳出可选择新建RUP的对话框解决方法
- audio、video的控制
W3C上面给的是js控制相关的播放与暂停,不过在实际开发中我们多会选择JQ来操作的,毕竟方便很多,而play()和pause()用于js play并不是jQuery的函数,而是DOM元素的函数,所以我 ...
- maven打包错误:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] Scanning for projects...[INFO] ...
- UVALive 4287 Proving Equivalence (强连通分量)
把证明的关系看出一张图,最终就是要所有的点都在至少一个环中.环的判断和度数有关. 用tarjan找强连通分量,在一个强连通分量点已经等价缩点以后形成一个DAG,计算入度为0的点数a, 出度为0的b,取 ...
- 005 String s = "Hello";s = s + " world!";执行这两行代码执行后,原始的 String 对象中的内容到底变了没有?
原始的String对象中的内容没有改变成“Hello world”. 1.原因 因为在Java中String类被设计成不可改变的类,所以String类的所有对象都是不可变的.第一句代码中,s(存储在栈 ...