目录
tkinter库安装
输入 pip install tkinter 或者 pip3 install tkinter
py文件里调用库的方法:
from tkinter import *
标签(Label)
from tkinter import *
win=Tk()
win.title("标签标题")
win.geometry("1024x768") #设置窗口初始大小(宽度x高度)
win.maxsize(1440,900) #最大窗体和最小窗体
win.minsize(800,600)
lab=Label(win,text="lable组件使用例子")
lab.pack()#显示组件
#另一种写法:
Label(win,text="样例").pack()
#系统可选用的自带位图
l1=Label(win,bitmap='error')
l1.pack()
Label(win,bitmap='hourglass').pack()
'''
一些其他的系统自带图:
'questhead'
'question'
'warning'
'gray12'
'gray25'
'gray50'
'gray75'
'''
#自定义图标 注意这个图片好像只能设置为.git文件 自己尝试一下
bm=PhotoImage(fild='图片地址')
Label(win,image=bm).pack()
#Label常用属性
Label(win,fg='red',bg='black',width=100,height=50,compound='top',text="自定义多种功能图标",anchor='center').pack
#compoud设置文本或者图像如何在Label上显示 left right top bottom center
#wraplength 指定单行文本的长度,用于多行文本显示
#justify 指定多行文本的对齐方式
#anchor指定文本或图片在Label中的显示位置 e w n s center
win.mainloop()#窗口显示/
按钮(Button)
import tkinter #注意如果不是 from tkinter import * Button或者Label前面都要加上tkinter.
from tkinter import messagebox
def Submit():
#弹出弹框
messagebox.showinfoh(title="",message="提交")
win=tkinter.Tk()#创建窗口对象
win.title("使用button组件的简单例子")#设置窗口标题
b=tkinter.Button(win,text="提交",command=Submit) #创建按钮组件Button
#一般command=函数 这个函数需要自己写
b.pack()#显示组件
win.mainloop()
输入框(Entry)
import tkinter
#1.创建和显示Entry组件对象
win=tkinter.Tk()
win.title('例子')
# entry=tkinter.Entry(win)
# entry.pack()
#2.获取Entry内容
# e=tkinter.StringVar()
# tkinter.Entry(win,textvariable=e).pack()
#3用Button按钮组件获取Entry组件的内容
def Callbutton():
print(e.get())
e=tkinter.StringVar() #其他数据类型还有 IntVar DoubleVar
entry=tkinter.Entry(win,textvariable=e).pack()
b=tkinter.Button(win,text='获取内容',command=Callbutton,width=10,height=1).pack()
e.set('Python') #将数据e设置为'python'
win.mainloop()
只读框(数据内容一般设置为不能修改但是只能读)
from tkinter import *
win=Tk()
data=IntVar()
Entry(win,textvariable=data,state='readonly').grid(row=0,colum=0,padx=5,pady=5,sticky='e')
#grid是位置布局 设置为0行 0列 左右填充5像素大小的空间
data.set(520)#设置数据
win.mainloop()
文本框(Text)
import tkinter
win=tkinter.Tk()
win.title('例子')
t=tkinter.Text(win)
t.insert(1.1,'2021')
t.insert(1.5,'2022')
t.pack()
win.mainloop()
界面布局(grid||pack这里主要介绍grid)
from tkinter import *
win=tkinter.Tk()
win.title('grid网格布局')
lbl_number=Label(win,text='贷款金额:')
lbl_number.grid(row=0,column=0,padx=5,pady=5,sticky='e')
number=Entry(win,width=15)
number.grid(row=0,column=1,padx=5,pady=5,sticky='w')
lbl_rate=Label(win,text='贷款年利率(百分比):')
lbl_rate.grid(row=1,column=0,padx=5,pady=5,sticky='e')
rate=Entry(win,width=15)
rate.grid(row=2,column=1,padx=5,pady=5,sticky='w')
ldl_years=Label(win,text='贷款年数:')
ldl_years.grid(row=2,column=0,padx=5,pady=5,sticky='e')
years=Entry(win,width=15)
years.grid(row=2,column=1,padx=5,pady=5,sticky='w')
btn_calculate=Button(win,text='计算每月应还款金额')
btn_calculate.grid(row=3,column=0,pady=5,columnspan=2)#横框两列
lbl_payment=Label(win,text='每月应还款金额:')
lbl_payment.grid(row=4,column=0,padx=5,pady=5,sticky='e')
payment=Entry(win,width=15,state='readonly')#设置为只读0
payment.grid(row=4,column=1,padx=5,pady=5,sticky='w')
win.mainloop()
界面切换(Frame)
from tkinter import Tk, Label, Button
from tkinter.ttk import Frame
class SwitchFrame(object):
def __init__(self, root):
self.root = root
root.title('界面切换')
root.geometry('500x160')
root.resizable(width=False, height=False) # 阻止Python GUI的大小调整
L1 = Label(root)
L1.pack() # L1用pack布局,用于切换按钮居中显示
Button(L1, text='第1页', command=self.firstpage).grid(row=1, column=1, padx=10, pady=10)
Button(L1, text='第2页', command=self.secondpage).grid(row=1, column=2, padx=10, pady=10)
L2 = Label(root, borderwidth=2, relief="sunken")
L2.pack() # L2用pack布局,用于待切换界面居中显示
# frame1
frame1 = Frame(L2, padding=(5, 20, 10, 10)) # 界面1
self.frame1 = frame1
Label(frame1, text='Frame1').grid(row=1, column=1, padx=10, pady=10)
Label(frame1, text='Frame1').grid(row=1, column=2, padx=10, pady=10)
# frame2
frame2 = Frame(L2, padding=(5, 20, 10, 10)) # 界面2
self.frame2 = frame2
Label(frame2, text='Frame2').grid(row=1, column=1, padx=10, pady=10)
Label(frame2, text='Frame2').grid(row=1, column=2, padx=10, pady=10)
self.currentpage = frame1
self.currentpage.pack() # 默认显示界面1,并记录当前界面
def firstpage(self):
if self.currentpage != self.frame1:
self.currentpage.pack_forget() # 取消显示当前界面,并不是销毁
self.currentpage = self.frame1
self.currentpage.pack() # 显示界面1
def secondpage(self):
if self.currentpage != self.frame2:
self.currentpage.pack_forget() # 取消显示当前界面,并不是销毁
self.currentpage = self.frame2
self.currentpage.pack() # 显示界面2
root = Tk()
SwitchFrame(root)
root.mainloop()
程序打包(pyinstaller)
1.py文件放在某个文件夹里面
2.用管理员身份打开cmd
3.输入 cd py文件路径
4.看看有没有安装库pyinstaller 没有就输入 pip install pyinstaller
5.输入pyinstaller -F 路径+文件名.py
6.生成好文件夹后 打开dict文件夹 里面就是运行程序的exe啦
7.如果不想让别人看你的代码 可以把py文件属性设置为隐藏