学习记录:python Tkinter基本用法

创建一个窗口

# 创建一个窗口
import tkinter # 引入tkinter库
window = tkinter.Tk()
window.title('这是窗口标题') # 设置窗口的title
window.geometry('250x250') # 设置窗口大小
window.mainloop() # 显示主窗口

在这里插入图片描述

lable标签

# lable标签
import tkinter
window = tkinter.Tk()
window.title('这是窗口标题')
window.geometry('250x250')

l = tkinter.Label(window,
    text = '我是标签内容', # 标签显示的内容
    bg = 'pink',          # 背景颜色
    font = ('Arial', 12), # 字体和字体大小
    width = 15, height=2  # 标签长宽
    )

l.pack() #固定窗口位置

window.mainloop()

在这里插入图片描述

label的位置

#label位置
import tkinter
window = tkinter.Tk()
window.title('这个是窗口标题')
window.geometry('250x250')

l = tkinter.Label(window,
    text = '我是标签内容',
    bg = 'pink',
    width = 15,
    height = 2
    )
l.pack(side='right') #bottom为底部 top 为顶部 left为这边 
window.mainloop()

在这里插入图片描述

grid布局

#grid布局
#for循环嵌套显示每行每列标签的位置
import tkinter
window = tkinter.Tk()
window.title('这个是窗口标题')
window.geometry('250x250')

for i in range(4):
    for  j in range(3):
        tkinter.Label(window, text=1).grid(row = i,    # 行
                                           column = j, # 列
                                           padx = 10,  #单元格左右间距
                                           pady = 10   #单元格上下间距
                                        )

window.mainloop()

在这里插入图片描述

#grid布局
#单元格左右,上下间距的设置
import tkinter
window = tkinter.Tk()
window.title('这个是窗口标题')
window.geometry('250x250')

#这个标签位置为:第一行,第一列,左右间距为10,上下间距为10
tkinter.Label(window, text='我是标签内容1').grid(
                                   row = 1,    # 行
                                   column = 1, # 列
                                   padx = 10,  #单元格左右间距
                                   pady = 10   #单元格上下间距
                                )

#这个标签位置为:第二行,第一列,左右间距为10,上下间距为10
tkinter.Label(window, text='我是标签内容2').grid(
                                   row = 2,    # 行
                                   column = 1, # 列
                                   padx = 10,  #单元格左右间距
                                   pady = 10   #单元格上下间距
                                )
window.mainloop()

在这里插入图片描述

place布局

#place布局
import tkinter
window = tkinter.Tk()
window.title('这个是窗口标题')
window.geometry('250x250')


l = tkinter.Label(window, text = '这个是标签内容', justify = tkinter.RIGHT, width=50)
l.place(
    x = 10, y = 10,             # 设置x,y坐标
    width = 100, height = 30    # 设置长宽
)

window.mainloop()

在这里插入图片描述

扫描二维码关注公众号,回复: 12731633 查看本文章

定义一个Button按钮 ,响应事件为关闭窗口

#定义一个Button按钮 ,响应事件为关闭窗口
import tkinter
window = tkinter.Tk()
window.title('我是窗口标题')
window.geometry('250x250')

#定义button
b = tkinter.Button(window,
                   text = '退出',           # 定义按钮的文字
                   bg = 'pink',             # 背景颜色
                   width = 15, height = 2,  # 设置长度
                   command = window.quit    # 响应事件:关闭窗口
)
b.pack()

window.mainloop()

在这里插入图片描述

对文本框插入内容

#对文本框插入内容
import tkinter
window = tkinter.Tk()
window.title('my window')
window.geometry('200x200')

#定义对文本框要插入的内容函数
def plus():
    n1 = 1  # 设置的变量
    n2 = 2  # 设置的变量
    t.insert('insert', int(n1) + int(n2))  # 把整数n1+整数n2的结果插入到文本框显示

#通过点击按钮,函数传值,command=plus,/t.instert('insert',)/ ,把内容插入到变量名为:t 的文本框
b1 = tkinter.Button(window, text="计算两数之和", command = plus)
b1.pack()

# 定义文本框
t = tkinter.Text(window, 
                 state = 'normal',  # 有disabled、normal 两个状态值,默认为normal
                 width = 15, height = 2
                 )
t.pack()

window.mainloop()

在这里插入图片描述

清空文本框内容

#清空文本框内容
import tkinter
window = tkinter.Tk()
window.title('my window')
window.geometry('200x200')
 
def clear():
    t.delete(1.0, 'end')  # 清除文本框内容

b1 = tkinter.Button(window, text = "清空文本框内容", command = clear)
b1.pack()

# 定义文本框
t = tkinter.Text(window, 
                 state = 'normal',  # 有disabled、normal 两个状态值,默认为normal
                 width = 15, height = 2
                 )
t.pack()

window.mainloop()

在这里插入图片描述

Entry&Text输入框与文本框

#Entry&Text输入框与文本框
#两个文本框输入整数相加的例子,文本框相互传参,并且对文本框插入内容
import tkinter
window = tkinter.Tk()
window.title('my window')
window.geometry('200x200')
 
def plus():
    n1 = e1.get()  # 获取输入框1的值
    n2 = e2.get()  # 获取输入框2的值
    t.delete(1.0, 'end')  # 清除文本框内容
    t.insert('insert', int(n1) + int(n2))  # 将结果添加到文本框显示
 
l1 = tkinter.Label(window, text = '输入数字1')
l1.pack()
# 定义输入框1
e1 = tkinter.Entry(window, width = 15)
e1.pack()
# 定义输入框2
l2 = tkinter.Label(window, text = '输入数字2')
l2.pack()
e2 = tkinter.Entry(window, width = 15)
e2.pack()
 
b1 = tkinter.Button(window, text = "计算两数之和", command = plus)
b1.pack()
# 定义文本框
t = tkinter.Text(window, 
                 state = 'normal',  # 有disabled、normal 两个状态值,默认为normal
                 width = 15, height = 2
                 )
t.pack()
b2 = tkinter.Button(window, text='退出', command = window.quit)
b2.pack()
 
window.mainloop()

在这里插入图片描述

messagebox消息对话框

#messagebox消息对话框
import tkinter
import tkinter.messagebox
window = tkinter.Tk()
window.title('这个是窗口标题')
window.geometry('250x250')

def say_hello():
    tkinter.messagebox.showinfo(title='提示框窗口标题', message='我提示框的内容!')

#定义消息对话框架
b = tkinter.Button(window, text = "提示框", command = say_hello)
b.pack()

window.mainloop()

在这里插入图片描述

判断账号密码登录的例子

#判断账号密码登录的例子
import tkinter
import tkinter.messagebox
 
# 用户登录验证
def login():
    name = entryName.get()
    pwd = entryPwd.get()
    if name == 'admin' and pwd == '123456':
        tkinter.messagebox.showinfo(title='userlogin', message='ok')
    else:
        tkinter.messagebox.showerror(title='userlogin', message='Error')
# 清空用户输入的用户名和密码
def cancel():
    varName.set('')
    varPwd.set('')
 
window = tkinter.Tk()
window.title('个人中心登录')
window.geometry('210x120')
varName = tkinter.StringVar(value='')
varPwd = tkinter.StringVar(value='')
# 创建标签
labelName = tkinter.Label(window, text='User Name', justify=tkinter.RIGHT, width=80)
# 将标签放到窗口上
labelName.place(x=10, y=5, width=80, height=20)
# 创建文本框,并设置关联的变量
entryName = tkinter.Entry(window, width=80, textvariable=varName)
entryName.place(x=100, y=5, width=80, height=20)
 
labelPwd = tkinter.Label(window, text='User Pwd:', justify=tkinter.RIGHT, width=80)
labelPwd.place(x=10, y=30, width=80, height=20)
# 创建密码文本框
entryPwd = tkinter.Entry(window, show='*', width=80, textvariable=varPwd)
entryPwd.place (x=100, y=30, width=80, height=20)
# 创建按钮组件,同时设置按钮事件处理函数
buttonOk = tkinter.Button(window, text='Login', command=login)
buttonOk.place(x=30, y=70, width=50, height=20)
buttonCancel = tkinter.Button(window, text='Cancel', command=cancel)
buttonCancel.place(x=90, y=70, width=50, height=20)
# 启动消息循环
window .mainloop()

在这里插入图片描述

在这里插入图片描述

窗口屏幕居中显示

import tkinter

win = tkinter.Tk()

sw = win.winfo_screenwidth()

#得到屏幕宽度

sh = win.winfo_screenheight()

#得到屏幕高度

ww = 250

wh = 150

#窗口宽高为100

x = (sw-ww) / 2

y = (sh-wh) / 2

win.geometry("%dx%d+%d+%d" %(ww,wh,x,y))

win.mainloop()

美化窗口方法

'''
# tkinter 美化窗口
import tkinter # 引入tkinter库
window = tkinter.Tk()
window.title('这是窗口标题') # 设置窗口的title
window.geometry('250x250') # 设置窗口大小
#window['bg'] = '#0099ff'# 设置背景颜色

#window.minsize(300,300) #固定窗口最大分辨率
#window.maxsize(250,250) #固定窗口最小分辨率
#window.attributes('-toolwindow', 1) #工具栏样式
window.attributes('-alpha',0.95) # 窗口透明度
window.mainloop() # 显示主窗口
'''

'''
# 输入框,明/密文显示
import tkinter

#创建主窗口
win = tkinter.Tk()
win.title("主界面")
#entry = tkinter.Entry(win) # 明文
entry = tkinter.Entry(win,show='*' ) # 密文
entry.pack()
 
win.mainloop()
'''