#开始
Python的话 我是看的小甲鱼的视频 所以代码也是小甲鱼的修改版 本博客这里只是学习记录
小甲鱼是个很棒的老师,虽然经常飙车....
#第一个代码
from tkinter import * root = Tk(); v = IntVar(); #创建一个Int对象用于绑定选择框的状态 c = Checkbutton(root,text="测试按钮",variable=v); #创建一个CHeckbutton 设定归属于root c.pack(); l = Label(root,textvariable=v); #每次修改选择框的状态之后这里的变量v会实时改变 l.pack(); mainloop();
结果:
#第二个代码 (这里使用了循环实现了放置多个组件)
from tkinter import * root = Tk(); numbers = ["1","2","3","4"]; #定义一个 列表储存文本内容 v = []; #用来保存每一个选择框所对应的状态 本代码中添加了四个元素 for num in numbers: v.append(IntVar()); #为每一个选择框在v列表中创建一个状态变量 b = Checkbutton(root,text=num,variable=v[-1]); #并且每创建一个选择框在v列表中对应的都是最后一个 b.pack(anchor = W); #设置布局位置 mainloop();
b.pack(anchor = W); 这一行中的W指的是左边对齐 W指的是西边 相应的 N,S,W,E 表示上北下南左西右东
结果:
#第三个代码(单选框)
from tkinter import *; root = Tk(); v = IntVar(); #简单暴力 直接创建三个单选框 Radiobutton(root,text="1",variable = v,value=1).pack(anchor=W); Radiobutton(root,text="2",variable = v,value=2).pack(anchor=W); Radiobutton(root,text="3",variable = v,value=3).pack(anchor=W); # text是显示文本 variable绑定一个Int对象 三个单选框value的值不一样的话 表示选择那个就把那个的value值赋值给v mainloop();
结果:
#第四个代码
from tkinter import *; root = Tk(); LANGS = [ ("Python",1), ("Perl",2), ("Ruby",3), ("Lua",4), ]; #列表包含元祖的方式 v = IntVar(); v.set(1); #默认选择 for lang,num in LANGS: Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False).pack(fill=X); #循环创建 indicatoron表示取消圆点图标 区别见下图 mainloop();
pack()函数里面参数的解释: (参考链接: https://www.douban.com/note/338163933/)
fill=X 当GUI窗体大小发生变化时,widget在X方向跟随GUI窗体变化
fill=Y 当GUI窗体大小发生变化时,widget在Y方向跟随GUI窗体变化
fill=BOTH 当GUI窗体大小发生变化时,widget在X、Y两方向跟随GUI窗体变化
结果:
注意显示风格被修改了 其次还有布局方式
#第五个代码
from tkinter import *; root = Tk(); group = LabelFrame(root,text="最好的语言是?",padx=5,pady=5); #创建一个标签框架 padx和pady表示框架内内容顶部5像素 左部5像素间距 group.pack(padx=10,pady=10); #表示框架顶部10像素 左部10像素间距 LANGS = [ ("Python",1), ("Perl",2), ("Ruby",3), ("Lua",4), ]; v = IntVar(); for lang,num in LANGS: Radiobutton(group,text=lang,variable=v,value=num).pack(anchor=W); #修改了单选框的归属 mainloop();
结果:
突然感觉逼格高了...
大概就这样了 晚安...