2021-04-27 Python初级Day11

  • 引入

1.thinter是Python的标准GUI库,窗口的功能必须需要import tkinter。所以窗口程序的代码结构如下:

import tkinter
top = tkinter.Tk()#创建Tk类的对象
# 进入消息循环
top.mainloop()#调用mainloop()方法,就会弹出窗口
  • 窗口显示和属性

1.窗口标题                                 top.title('编辑文字')

2.窗口大小(长x宽)               top.geometry('500x300')

3.窗口颜色                                 top.config(bg='blanched almond')

4.更改窗口出现的位置             top.geometry('500x300+x+y')-----x,y代表窗口水平和垂直平移的距离

5.如何设置窗口出现在屏幕中间?即x,y如何确定?

x=屏幕宽度/2-窗口宽度/2

y=屏幕高度/2-窗口高度/2

6.如何获得屏幕的宽度和高度?

sw=root.winfo_screenwidth()

sh=root.winfo_screenheight()

x = (sw-ww) // 2 #窗口水平位置
y = (sh-wh) / /2 #窗口垂直位置
  • 标签显示

1.标签:就是提示型的文字,用tkinter.Label类

2.语法:

luname = tkinter.Label(top, text='用户名:', bg='green',font=('楷体', 12), width=30, height=2,pady=15,padx=20)

#创建标签对象
#里面的属性,有些可加可不加
'''
属性说明:
1.top:代表窗口的对象。表示标签在哪个窗口下。----可加可不加
2.text:标签文字
3.bg:背景颜色
4.font:字体
5.width,height:标签的宽度和高度
6.pady:标签距离上沿的距离
7.pady:标签距离左边沿的距离
'''

luname.grid(row=0,column=0)
#标签显示在窗口的布局方式,即网格式
  • 单行文本显示

1.用tkinter.Entry类

2.语法:

euname = tkinter.Entry(top, font=('楷体', 12),width=20)
#没有高度,左边距,上边距的属性---因为它会紧贴之前设置的标签

euname = tkinter.Entry(top, show='*',width=20)
#设置的是密码框

euname.grid(row=0,column=1)
#处于第一行第二列
  • 按钮

1.用tkinter.Button类

2.语法:

b = tkinter.Button(top, text='选择', font=('楷体', 12), width=10,
height=1, command=choose)

#command代表点这个按钮,要执行的函数


b.grid(row=0,column=2)
  • 对话框-信息提示

1.需要子模块messagebox,需要引入

import tkinter.messagebox

2.弹出对话框:上述command对应是choose函数,定义choose函数中,加入messbox的信息

def choose():
    tkinter.messagebox.showinfo('选择提示','文件已选择')

  • 文件选择框

1.需要子模块filedialog,需要引入

import tkinter.filedialog

2.语法:

def choose():
    file_path=tkinter.filedialog.askopenfilename(title='选择EXCEL文件')
#文件的路径付给了变量file_path,下一步需要件路径付给单行文本框

  • 单行文本框的常见操作 

1.向单行文本框插入数据:

eexcel.insert('end',file_path)
#end代表结尾,如果向文本框中多次插入数据,则是在上一次的结果加
#eexcel是文本框的对象

2.获得单行文本框的数据:

strname=eexcel.get()

3.删除文本框的数据:

eexcel.delete(0,'end')
#0代表从开头开始删除
  • 总结

窗口设置-标签设置-单行文本框设置-按钮设置-按钮的函数功能设置


1.作业1:完成文件选择框软件的制作,要求点击选择按钮,弹出文件选择框,将选择的文件填入到文本框中,重新点击选择按钮要清空文本框的内容,将新的文件重新填入到文本框中,点击保存按钮时判断文本框内容为空时弹出报错消息框,判断文本框内容不是Excel文件时弹出报错消息框,选择正确时弹出“文件选择成功”消息框

import tkinter
import tkinter.messagebox
import tkinter.filedialog
root=tkinter.Tk()
root.title('EXCEL选择')
sw=root.winfo_screenwidth()
sh=root.winfo_screenheight()
x=(sw-500)//2
y=(sh-300)//2
root.geometry('500x300+%d+%d'%(x,y))

lbltitle=tkinter.Label(root,text='选择EXCEL文件:',font=('楷体',12),width=15,height=2,pady=20,padx=10)
lbltitle.grid(row=0,column=0)
etitle=tkinter.Entry(font=('楷体',12),width=20)
etitle.grid(row=0,column=1)
def choose():

    etitle.delete(0,'end')
    file_path=tkinter.filedialog.askopenfilename(title='选择EXCEL文件')
    etitle.insert('end',file_path)
btn=tkinter.Button(text='选择',font=('楷体',12),width=8,command=choose)
btn.grid(row=0,column=2)
def save():
    path_name=str(etitle.get())
    if path_name=='':
        tkinter.messagebox.showinfo('错误提示', '请选择文件')
    elif path_name.find('.xls',0,len(path_name))==-1 and path_name.find('.xlsx',0,len(path_name))==-1:
        tkinter.messagebox.showinfo('错误提示','请选择EXCEL文件')
    else:
        tkinter.messagebox.showinfo('选择提示','文件选择正确')
btnsave=tkinter.Button(text='保存',font=('楷体',12),width=8,command=save)
btnsave.grid(row=1,column=1)
root.mainloop()

2.作业2: 完成直播倒计时软件的制作

import tkinter
from tkinter import messagebox
import time
top=tkinter.Tk()
top.title('倒计时')
top.geometry('370x50+400+100')
ltitle=tkinter.Label(top,text='倒计时:',width=10,height=2,font=('楷体',14))
ltitle.grid(row=0,column=0)
ehour=tkinter.Entry(top,width=2,font=('楷体',14))
ehour.insert('end','00')
ehour.grid(row=0,column=1)
lhour=tkinter.Label(top,text='时',width=3,height=2,font=('楷体',14))
lhour.grid(row=0,column=2)

emin=tkinter.Entry(top,width=2,font=('楷体',14))
emin.insert('end','00')
emin.grid(row=0,column=3)
lmin=tkinter.Label(top,text='分',width=3,height=2,font=('楷体',14))
lmin.grid(row=0,column=4)

esec=tkinter.Entry(width=2,font=('楷体',14))
esec.insert('end','00')
esec.grid(row=0,column=5)
lsec=tkinter.Label(top,text='秒',width=3,height=2,font=('楷体',14))
lsec.grid(row=0,column=6)
def starts():
    times=int(esec.get())+int(emin.get())*60+int(ehour.get())*60*60
    if times==0:
        messagebox.showinfo('错误提示','请设置时间')
    else:
        while times>0:
            times-=1
            minutes=times//60
            seconds=times%60
            hours=0
            if minutes>=60:
                hours=minutes//60
                minutes=minutes%60
            ehour.delete(0,'end')
            emin.delete(0,'end')
            esec.delete(0,'end')
            ehour.insert('end',hours)
            emin.insert('end',minutes)
            esec.insert('end',seconds)
            top.update()
            time.sleep(1)
btn=tkinter.Button(width=6,text='开始',command=starts,font=('楷体',14))
btn.grid(row=0,column=7)
top.mainloop()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值