[Python] Tkinter的食用方法_02_LabelFrame RadioButton CheckButton

#开始

  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();

结果: 

  

  突然感觉逼格高了...

大概就这样了 晚安...

猜你喜欢

转载自www.cnblogs.com/cjdty/p/10328635.html