Gui编程速查||python||tkinter||标签||按钮||界面切换

目录

tkinter库安装

标签(Label)

按钮(Button)

输入框(Entry)

只读框(数据内容一般设置为不能修改但是只能读)

文本框(Text)

界面布局(grid||pack这里主要介绍grid)

界面切换(Frame)

程序打包(pyinstaller)


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文件属性设置为隐藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涡巻ナルト人≥サス

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值