Thinter弹窗初学习,让雪豹帮你导出不定积分吧(全注释版)
tkinter是一个非常好用的设计界面的库,我们可以借助tkinter库里的一些函数来设计弹窗。接下来就来介绍一下下面程序所用到的tkinter中的函数及其用法。
Tk():这个函数是建立一个窗口,这里我们用win来接收这个值。
title是设置窗口的标题,具体用法为 :接收窗口的值(win).title(‘窗口名称’)
geometry用来设置窗口大小 具体用法为:win.geometry(‘宽x高+dx+dy’)注意,中间的乘号是小写的x,dx和dy代表窗口弹出时窗口左侧和上侧与屏幕左侧和上侧之间的距离。若geometry函数的参数为none,即win.geometry(None)就是获取此时窗口的宽高以及在屏幕上的位置
如果我们想要美化窗口加些图片的话,可以用photoimage函数,具体用法为:photoimage(file=图片路径),下面程序用photo来接收这个图片
Label是tkinter中的标签控件,可用来设置文本和图片,具体用法为:Label(窗口值,text=‘文本内容’),如果想设置图片的话,把text改为image,等号后面的内容改成上述接受图片的值(photo)即可。
place函数用来调整位置,下面程序里用place函数设置了第一个标签的位置,具体用法为:接收标签的值(lb1).place(relx=0.1,rely=0.1,relwidth=0.8,relheight=0.1)其中relx,rely,relwidth,relheight都是相对于主窗口的坐标,它们的值可以在0~1间含需求来取。
Entry组件可用来输入一行文本,若输入文本的长度超过了所设置标签的长度,要通过鼠标或键盘来滚动显示,具体用法与Label的设置方法相同,区别在于不用设置文本内容,即不用输入‘text=’这一项,具体设置方法在程序中的注释已经详细列出,这里不再赘述。
from tkinter import * #弹窗不引入这个你还想引入啥
from sympy import * #后面算积分
import time #顺便做个时钟,做好时间管理
#创建窗口
win = Tk()
#设置标题
win.title('鉴定完毕,纯纯的窗口')
#宽高
win.geometry('720x720')
#背景颜色
#这里直接用图片背景,雪豹图片自取,先引入图片,格式要png,跑不通把文件地址斜杠换反向,这里就是
photo = PhotoImage(file="C:/Users/86132/Pictures/Saved Pictures/xuebao.png")
#image设置背景图片
theLabel = Label(win,image=photo)
#标签,大标题,text输入文本后可以用font调字体和大小,背景颜色用缩写bg,relief=RAISED是浮雕形式,更美观,bd是边框大小
lb1 = Label(win, text='让雪豹把不定积分导出来吧',font=('华文新魏',32),bg='powderblue',relief=RAISED,bd=8)
#调整位置,relx指定相对坐标,relx的取值为0~1的小数
lb1.place(relx=0.1, rely=0.1, relwidth=0.8, relheight=0.1)
#输入,Entry函数,后面设置意义同上
inp = Entry(win,font=("华文新魏",20),bg='lightblue',relief=RAISED,bd=8)
inp.place(relx=0.2, rely=0.2, relwidth=0.6, relheight=0.1)
#定义积分,用了sympy
def Integrate():
x = symbols('x')#所以只能识别以x作未知量的函数,其他未知量会看做数字处理
f_x = inp.get() #获取输入
s = integrate(f_x,x)#求积分
txt.insert(END, s)#返回结果到输出框
return s
#按钮设置,主要是command,按下会执行后面的函数
btn1 = Button(win, text='谢谢雪豹',font=('华文新魏',32), command=Integrate,relief=RAISED,bg='aqua',bd=8)
btn1.place(relx=0.1, rely=0.4, relwidth=0.3, relheight=0.1)
# 输出框,上面函数中的求得的不定积分s会在此以Text输出
txt = Text(win,fg='black',font=("华文新魏",20),bg='skyblue',relief=RAISED,bd=8)
txt.place(relx=0.1,rely=0.6, relwidth=0.3)
#顺便做的时钟,先定义函数
def gettime():
timestr = time.strftime("%H:%M:%S") # 获取当前的时间并转化为字符串
lb2.configure(text=timestr) # 重新设置标签文本
win.after(1000, gettime) # 每隔1s调用函数 gettime 自身获取时间
# 以文本框形式输出
lb2 = Label(win,text='',fg='teal',font=("华文新魏",20),relief=RAISED,bd=8,bg='powderblue')
lb2.place(relx=0.5, rely=0.4, relwidth=0.3, relheight=0.1)
# 统统实例化
gettime()
theLabel.pack()
win.mainloop()
雪豹出击!
- 点赞
- 收藏
- 关注作者
评论(0)