Python乐趣之tkinter欢迎界面

一、背景

应用程序启动一般都具有欢迎界面,一方面是展示开发者,另一方面则是为主程序初始化启动争取时间,主程序启动时间过长会给人一种卡死的假象,有了欢迎界面就可以化解这一问题。

二、思路

利用python的tkinter,启动双线程,分别加载欢迎界面和主程序。本人没有去查找python是否有欢迎界面库(因为想自己做一个),所有下面主要介绍欢迎界面的代码实现。

三 、代码

直接上代码

from tkinter import *
from tkinter import ttk
import os
import time
import tkinter.font as tkFont
import threading

def showWelcome():
	sw = root.winfo_screenwidth()
	#得到屏幕宽度
	sh = root.winfo_screenheight()
	#得到屏幕高度
	root.overrideredirect(True)
    #窗口透明度(1为不透明,0为全透明)
	root.attributes("-alpha",1)
	x=(sw-475)/2
	y=(sh-200)/2
    #设置窗口位于屏幕中部
	root.geometry("475x200+%d+%d" %(x,y))
	root['bg']='black'
    #插入欢迎图片,可以是logo
	if os.path.exists('./Lib/img/welcome.png'):
		print("Lib/img exist")
		bm = PhotoImage(file = './Lib/img/welcome.png')
		lb_welcomelogo = Label(root, image = bm,bg='black')
		lb_welcomelogo.bm = bm
		lb_welcomelogo.place(x=0, y=10,)
	#插入文字,可以显示开发者或出处
	lb_welcometext = Label(root, text = 'Welcome to use Long_xu application',
		fg='lightgray',bg='black',font=('华文隶书', 22))
	lb_welcometext.place(x=0, y=91,width=475,height=100)

def closeWelcome():
	#设置欢迎页停留时间
	for i in range(2):
		rootMSCT.attributes("-alpha", 0)#窗口透明度
		time.sleep(1)
	rootMSCT.attributes("-alpha", 1)#窗口透明度
	root.destroy()

if __name__=='__main__':
    rootMSCT= Tk()  #创建应用程序主窗口
    rootMSCT.attributes("-alpha", 0) #透明状态下加载主程序
    rootMSCT.title("Long_xu welcome v1.0");
    msw = rootMSCT.winfo_screenwidth()
    msh = rootMSCT.winfo_screenheight()
    m_x=(msw-600)/2
    m_y=(msh-430)/2
    rootMSCT.geometry("600x430+%d+%d" %(m_x,m_y))
    global root
    #创建欢迎界面窗口
    root = Toplevel()
    tmain=threading.Thread(target=showWelcome)
    tmain.start();
    t1=threading.Thread(target=closeWelcome)
    t1.start();
    '''
    主窗口程序代码
    '''
    rootMSCT.mainloop()

效果展示:
在这里插入图片描述

四、结束语

代码中写有详细注释,相对理解起来简单。由于Tk()函数的初始化作用,目前没有很好的办法解决运行程序时图形界面左上角闪烁问题。
历史修改:

  1. 调整示例代码中的缩进匹配问题。2023/4/12
  2. 调整代码为标准格式。2023/4/12
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lion 莱恩呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值