Thinter弹窗初学习,让雪豹帮你导出不定积分吧(全注释版)

举报
小许是小白 发表于 2023/01/20 14:44:24 2023/01/20
【摘要】 本来想做个计算器的,但是不少前辈已经做过了,所以试试求不定积分,初学者水平有限,请多多指教,谢谢

tkinter是一个非常好用的设计界面的库,我们可以借助tkinter库里的一些函数来设计弹窗。接下来就来介绍一下下面程序所用到的tkinter中的函数及其用法。

 

Tk():这个函数是建立一个窗口,这里我们用win来接收这个值。

 

title是设置窗口的标题,具体用法为 :接收窗口的值(win.title(‘窗口名称’)

 

geometry用来设置窗口大小 具体用法为:win.geometry(‘宽x+dx+dy’)注意,中间的乘号是小写的xdxdy代表窗口弹出时窗口左侧和上侧与屏幕左侧和上侧之间的距离。若geometry函数的参数为none,即win.geometryNone就是获取此时窗口的宽高以及在屏幕上的位置

 

如果我们想要美化窗口加些图片的话,可以用photoimage函数,具体用法为:photoimagefile=图片路径),下面程序用photo来接收这个图片

 

Labeltkinter中的标签控件,可用来设置文本和图片,具体用法为:Label(窗口值,text=‘文本内容’),如果想设置图片的话,把text改为image,等号后面的内容改成上述接受图片的值(photo)即可。

 

place函数用来调整位置,下面程序里用place函数设置了第一个标签的位置,具体用法为:接收标签的值(lb1.placerelx=0.1rely=0.1relwidth=0.8relheight=0.1其中relxrelyrelwidthrelheight都是相对于主窗口的坐标,它们的值可以在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()

雪豹出击!

1673499604234918672.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。