Label(标签控件,可以显示文本)
from tkinter import *# 这样导入包后面引用库里的东西不需要库名前缀#import tkinter这种导入方式需要
win = Tk()
win.title('窗口')
win.geometry('400x300+200+100')#x是英文字母小写x 窗口的长x宽+屏幕左上角距离
label = Label(win,text='这是一个标签',bg='pink',fg='red',font=("黑体",20),width=20,height=10,wraplength=100,justify="left",
anchor="ne"))
label.pack()#打包布局
win.mainloop()#显示窗口
''' win:父窗体 text:显示的文本内容 bg:背景色 fg:字体颜色 font:字体 wraplength:指定text文本中多宽之后换行 justify:设置换行后的对齐方式 anchor:位置 n北,e东,w西,s南,center居中;还可以写在一起:ne东北方向'''
Button(按钮控件,可绑定事件)
from tkinter import *
def func():
print('Hello World')
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
bt1 = Button(win,text='绑定函数',command=func)
bt1.pack()
button3 = Button(win, text="按钮",\ command=lambda:print("bbbbbbbbbbbb"))
button3.pack()
bt2 = Button(win,text='退出',command=win.quit)
bt2.pack()
win.mainloop()
Entry(输入控件,显示简单文本内容)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
#密文显示
entry1 = Entry(win,show='*')#show可以用于密码框输入
entry1.pack()
#绑定变量
e = Variable()
entry2 = Entry(win,textvariable=e)
entry2.pack()
e.set('你好啊!')#给e设定一个值
print(e.get())#打印e的取值
print(entry2.get())#打印e的值在entry2里面
win.mainloop()
Text(文本控件,显示多行文本)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
scroll = Scrollbar()#创建滚动条
scroll.pack(side=RIGHT,fill=Y)
text = Text(win, width=30, height=10)#height显示行数
text.pack(side=LEFT,fill=Y)
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)
str = '''盖闻天地之数,有十二万九千六百岁为一元。将一元分为十二会,乃子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥之十二支也。每会该一万八百岁。且就一日而论:子时得阳气,而丑则鸡鸣;寅不通光,而卯则日出;辰时食后,而巳则挨排;日午天中,而未则西蹉;申时晡而日落酉;戌黄昏而人定亥。譬于大数,若到戌会之终,则天地昏蒙而万物否矣。再去五千四百岁,交亥会之初,则当黑暗,而两间人物俱无矣,故曰混沌。又五千四百岁,亥会将终,贞下起元,近子之会,而复逐渐开明。邵康节曰:“冬至子之半,天心无改移。一阳初动处,万物未生时。”到此,天始有根。再五千四百岁,正当子会,轻清上腾,有日,有月,有星,有辰。日、月、星、辰,谓之四象。故曰,天开于子。又经五千四百岁,子会将终,近丑之会,而逐渐坚实。易曰:“大哉乾元!至哉坤元!万物资生,乃顺承天。”至此,地始凝结。再五千四百岁,正当丑会,重浊下凝,有水,有火,有山,有石,有土。水、火、山、石、土谓之五形。故曰,地辟于丑。又经五千四百岁,丑会终而寅会之初,发生万物。'''
text.insert(tkinter.INSERT, str)
win.mainloop()
Menu(顶层菜单)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
menubar = Menu(win)#菜单条
win.config(menu=menubar)
def func():
print('你好啊!')
menu1 = Menu(menubar,tearoff=False)#创建一个菜单选项
for item in ['python','c','java','c++','c#','php','B','退出']:
if utem == '退出':
menu1.add_separator()#添加分隔线
menu1.add_command(label=item,command=win.quit)
else:
menu1.add_command(label=item,command=func)
menubar.add_cascade(label='语言',menu=menu1)#向菜单条添加菜单选项
def showMenu(event):
menubar.post(event.X_root,event.y_root)
win.bind('' ,showMenu)#鼠标右键菜单(1,2,3->左,中,右键)
win.loop()
Frame(框架控件:桌面上显示一个矩形区域,作为容器控件)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
fr = Frame(win)
fr.pack()
fr1 = Frame(fr)
Label(fr1,text='左上',bg='pink').pack(side=TOP)
Label(fr1,text='左下',bg='blue').pack(side=TOP)
fr1.pack(side=LEFT)
fr2 = Frame(fr)
Label(fr2,text='右上',bg='green').pack(side=TOP)
Label(fr2,text='右下',bg='red').pack(side=TOP)
fr2.pack(side=RIGHT)
win.mainloop()
place(绝对布局,窗口变化对位置没有影响)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
label1 = Label(win,text='good',bg='blue')
label2 = Label(win,text='nice',bg='red')
label3 = Label(win,text='cool',bg='green')
label1.place(x=10,y=10)
label2.place(x=10,y=50)
label3.place(x=10,y=100)
win.mainloop()
pack(相对布局,窗体改变对控件有影响)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
label1 = Label(win,text='good',bg='blue')
label2 = Label(win,text='nice',bg='red')
label3 = Label(win,text='cool',bg='green')
label1.pack(fill=Y,side=LEFT)
label2.pack(fill=X,side=TOP)
label3.pack()
win.mainloop()
grid(表格布局)
from tkinter import *
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
label1 = Label(win,text='good',bg='blue')
label2 = Label(win,text='nice',bg='red')
label3 = Label(win,text='cool',bg='green')
label4 = Label(win,text='handsome',bg='yellow')
label1.grid(row=0,column=0)
label2.grid(row=0,column=1)
label3.grid(row=1,column=0)
label4.grid(row=1,column=1)
win.mainloop()
表格数据
from tkinter import *
from tkinter import ttk
win = Tk()
win.title('窗口标题')
win.geometry('400x300+200+100')
table = ttk.Treeview(win)
table.pack()
table['columns'] = ('姓名','年龄','身高','体重')#定义列
table.column('姓名',width=100)#设置列 列不显示
table.column('年龄',width=100)
table.column('身高',width=100)
table.column('体重',width=100)
#设置表头
table.heading('姓名',text='姓名-name')
table.heading("年龄", text="年龄-age")
table.heading("身高", text="身高-height")
table.heading("体重", text="体重-weight")
#添加数据
table.insert("", 0, text="line1", values=("小郑","34","177cm","70kg"))
table.insert("", 1, text="line2", values=("小张","43","188cm","90kg"))
win.mainloop()