**Python tkinter GUI界面笔记(一)**

一、引入tkinter库中所有模块,简化代码

from tkinter import*

二、实例化

root = Tk()

三、基本模块
(1)title(小窗口的标题)

root.title("标题")

(2)标签:Label

#标签内容支持转义符 如 \n
Label1 = Label(root,
		text="标签",
		justify=Left,
		padx=1)
#justify 文本的左对齐Left 右对齐Right 居中Center 默认Center
#padx 距边框长度
"""插入图片 
file不支持绝对路径 
Label中有图片会覆盖掉Label中的text"""
photo = PhotoImage(file="1.gif")#对tkinter中的PhotoImage模块实例化
Label2 = Label(root,image=photo)
#若想图片放到文字下面做背景
Label3 = Label(root,
		text="内容",
		image=photo,
		compound=Center,    # 混合模式,文字在图片的正上方显示
		font="xxx字体"20))#字体 和字号
Label1.pack()
Label2.pack()
Label3.pack()

(3)按钮:Button

Button(root,text="按钮名称",fg="Blue",bg="white",command=say_hi)
fg:字体颜色
bg:按钮背景颜色
command:对按钮绑定方法

(4)框架:Frame(调整组件的位置)可以理解为一个盒子在里面放Button等组件,对窗口进行总体的布局

Frame1 = Frame(root)
#在盒子里面放一个按钮
Button1 = Button(Frame1,text="按钮名称",fg="Blue",command=say_hi)

(5)复选框 Checkbutton 几个选项可以多选

v = IntVar()
C = Checkbutton(root,text="百花",variable=v)

variable在复选框中只能为1或0 选中为1
IntVar 表示v是一个整形变量 相当于C语言中的 int v
再理解:variable后面跟的是一个变量的地址,每一个复选框需要不同的地址,如果后面是同一个地址的话,选中状态将会同时变化

#循环赋予不同地址
from tkinter import *
root = Tk()
v = []
boys = ["1","2","3"]
for i in boys:
	v.append(IntVar())
	b = Checkbutton(root,text = i ,variable=v[-1])
	b.pack()
mainloop()

示例图
单选框:Radiobutton 几个选项中只能选一个

v = IntVar()
C1 = Radiobutton(root,text="百花1",variable=v,value=1.pack()
C2 = Radiobutton(root,text="百花2",variable=v,value=2.pack()
C3 = Radiobutton(root,text="百花3",variable=v,value=3.pack()

value 值固定且唯一 ,每个Radiobutton的variable都共用一个IntVar地址 ,所以当其中一个被选中,variable的值将会变成某个value,从而实现单选

#循环创建单选框
from tkinter import *
root = Tk()
num = [("1",1),
	("2",2),
	("3",3)
	]
v = IntVar()
for name,number in num:
	b = Radiobutton(root,text = name,variable=v,value = number,indicatoron=False)
	#indicatoron 控制前面的选择框 可以自己试一下 False和True
	b.pack()
mainloop()

(6)标签框架 LabelFrame 就是给框架上有一个标签

#循环创建单选框
from tkinter import *
root = Tk()
group = LabelFrame(root,text="内容")
group.pack()
num = [("1",1),
 ("2",2),
 ("3",3)
 ]
v = IntVar()
for name,number in num:
 b = Radiobutton(group,text = name,variable=v,value = number)
 b.pack()
mainloop()

代码运行后: 在这里插入图片描述
(7)输入框:Entry

from tkinter import *
root = Tk()
v1 = StringVar()
#textVariabel 将输入的文本放在v1 show 表示用*显示 也可以用任意字符如%¥@
e = Entry(root,textVariabel = v1 ,show='*')
e.pack()
#清空输入框
e.delete(0,END)
#插入文字
e.insert(0,"文本")

(8)对每一组件进行排放

#直接在组件后面.grid(row=1,colum=1,sticky=W/E/S/N)
#类似于一个一个格子一般 row控制组件处于一行的第几个格子 column则是控制处于哪一列,sticky控制处在的方位
from tkinter import *
root = Tk()
e = Entry(root).grid(row=3,column=0,sticky=W)
e2 = Entry(root).grid(row=2,column=2,sticky=E)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值