用Tkinter打造GUI开发工具(26)Logo窗口及程序生成文字图形

用Tkinter打造GUI开发工具(26)Logo窗口及程序生成文字图形


Python有丰富的库,因此能使Tkinter的窗口用程序生成漂亮图形。我们对Tkinter库再次封装HP_tk模块,增加可很多新功能函数。HP_tk模块是小白量化平台的其中一个Tkinter增强模块,京东、淘宝、当当网上购买《零基础搭建量化投资系统——以Python为工具》正版书,赠送小白量化平台全部源代码。
本篇介绍图形生成各种大小文字,即图片的合成。利用HP_tk模块为窗口建立底图片。
下面给一个演示,主窗口上弹出一个无边框Logo窗口,15秒后,这个窗口自动关闭。

# -*- coding: utf-8 -*-
import  tkinter  as  tk   #导入Tkinter
import  HP_tk2  as  htk   #导入htk
import HP_global as g   #建立全局数据域g
import HP_set   #全局数据域g中变量初始化
from PIL import Image, ImageTk, ImageDraw, ImageFont
import threading

global timer_interval
timer_interval=1  #时钟
global timer
global tk_image,pil_image,logolabel
def logo(root=g.root):
    global tk_image,pil_image,logolabel
    global timer
    pil_image =Image.open('img/bj.jpg')
    #获取图像的原始大小  
    w, h = pil_image.size  
    w2=w+1
    h2=h+10        
    pil_image = htk.resize(w, h, w2 , h2, pil_image)  
    r2,g2,b2=htk.RGB(g.cns['gold'])
    htk.drawFont2(pil_image,10,10,"小白量化投资分析系统",size=40,r=r2,g=g2,b=b2)
    r2,g2,b2=htk.RGB(g.cns['gold'])
    htk.drawFont2(pil_image,80,50,"--大众化基于人工智能的量化投资系统",size=26,r=r2,g=g2,b=b2)
    htk.drawFont3(pil_image,10,70,"超越!",size=80,r=255,g=0,b=0)
    htk.drawFont3(pil_image,110,150,"是我们的每一步!",size=54,r=255,g=255,b=0)
    htk.drawFont(pil_image,150,240,"设 计: 小  白",size=30,r=0,g=0,b=0)
    htk.drawFont(pil_image,140,230,"设 计: 小  白",size=30,r=255,g=255,b=255)
    tk_image = ImageTk.PhotoImage(pil_image)  
    w1 = htk.myWindow(g.root,g.title,w2,h2)  #创建弹出窗口
    w1.overturn() #隐藏窗口边框
    label=tk.Label(w1.top,image=tk_image)
    label.place(x=0, y=0, relwidth=1, relheight=1,bordermode=tk.OUTSIDE)
    htk.setCenter(w1.top,tk_image.width()+4,tk_image.height()+4)
    htk.reSizable(w1.top,False, False)
    logolabel = tk.StringVar()  
    logolabel.set('正在加载数据...')
    tk.Label(w1.top, text = '',textvariable=logolabel,width=43,\
          font = 'Helvetica -18 bold',bg=g.cns['darkblue'],fg='white').place(x=26, y=310)
    def fun_timer():
        global timer
        w1.destroy()  
        timer.cancel()   
    timer = threading.Timer(10, fun_timer)  #15秒后关闭窗口
    timer.start()

#建立主窗口
root=htk.MainWindow(title='小白量化分析平台2(通达信Python版 测试版)',x=100,y=200,w=800, h=600)
root.iconbitmap('ico/xb.ico')  #设置应用程序图标
root.SetCenter()  #移动到屏幕中央
g.root=root
htk.thread_it(logo())  ##用多线程启动定时器
#x=logo2()

root.mainloop()

上面程序运行结果如下。
在这里插入图片描述
上面代码是小白量化分析平台中使用的代码。
在主程序中,使用语句"global logolabel",变为全局变量。任何地方,都可以修改上图最下面的文字信息。
例如小白2中main.py部分代码如下:

logolabel.set('正在加载知识库...')
robot_init()  #聊天机器人初始化
#中间省略。

logolabel.set('正在连接行情服务器...')
htdx.TdxInit()  ##初始化通达信

下面我们再看一个Logo窗口演示。这个弹出窗口,可以使用按钮进行关闭。演示代码如下。

# -*- coding: utf-8 -*-
import  tkinter  as  tk   #导入Tkinter
import  HP_tk2  as  htk   #导入htk
import HP_global as g   #建立全局数据域g
import HP_set   #全局数据域g中变量初始化
from PIL import Image, ImageTk, ImageDraw, ImageFont
import threading

# 弹窗logo窗口
class logo2(tk.Toplevel):
    def __init__(self, root=g.root):
        super().__init__()
        self.title('作者声明')
        self.parent = root # 显式地保留父窗口
        width = 800
        height = 700
        logoForm=self
        htk.setCenter(self,w=800,h=710)
        self.attributes('-topmost',1)  #参数1,设置顶层窗口,覆盖其它窗口。
        pil_im = Image.new('RGB', (width, height), (0, 0, 0))
        htk.drawFont3(pil_im,60,1,"荷蒲",52,g=0,b=0)
        htk.drawFont(pil_im,160,10,"因为无所是事,而设计了可自动化可",40,g=150)
        htk.drawFont(pil_im,6,70,"AI的玩具软件。作者没有许可你不能使用,",40,g=180)
        htk.drawFont(pil_im,4,130,"作者不会承担可能会对你的身体造成的伤害,",40,g=200)
        htk.drawFont(pil_im,2,190,"或者使你不    能亏损的风险。",40,g=220)
        htk.drawFont(pil_im,2,270,"你可以给你     用,给你的鸡       用,",40,g=220,b=150)
        im = Image.open('ni.png')
        im=im.resize((100,100))
        pil_im.paste(im,(200,220),None)
        im2 = Image.open('dn2.png')
        im2=im2.resize((110,110))
        pil_im.paste(im2,(550,210),None)
        htk.drawFont(pil_im,2,365,"给你的狗      用,那将是属于你自己的",40,r=220,g=220,b=150)
        
        im3 = Image.open('gou2.jpg')
        im3=im3.resize((100,100))
        pil_im.paste(im3,(170,340),None)
        htk.drawFont3(pil_im,2,470,"冒险。",40,r=220,g=220,b=150)
        htk.drawFont(pil_im,100,470,"如果方便就捐点钱,      我不小心",40,r=220,g=220,b=150)
        im4 = Image.open('img/1fen.png')
        im4=im4.resize((100,100))
        pil_im.paste(im4,(450,440),None)
        htk.drawFont(pil_im,2,570,"被饿死了,那将是你最大的        。",40,r=220,g=220,b=150)
        htk.drawFont2(pil_im,470,550,"损失",80,r=220,g=0,b=0)
        htk.drawFont(pil_im,10,650,"联系QQ:2775205  捐助微信:18578755056",40,r=250,g=250,b=250)   
        photo=ImageTk.PhotoImage(pil_im)
        htk.BackPicture(logoForm,img=photo)
        #点击按钮。关闭窗口。
        button=tk.Button(logoForm,text="同意约定\n开始捐钱",command=logoForm.destroy,font=("Times",12, ""),bd=10)
        button.place(x=670,y=560)
        self.grab_set()

#建立主窗口
root=htk.MainWindow(title='小白量化分析平台2(通达信Python版 测试版)',x=100,y=200,w=1000, h=900)
root.iconbitmap('ico/xb.ico')  #设置应用程序图标
root.SetCenter()  #移动到屏幕中央
g.root=root

x=logo2()  #启动logo窗口

root.mainloop()

程序执行结果如下。
在这里插入图片描述
《零基础搭建量化投资系统——以Python为工具》不仅仅是开发量化投资平台软件的书籍,里面提供的知识和量化库模块。你可以设计各种Python图形GUI应用程序。经过打包为为exe文件,可以把你的Python程序给任何不懂电脑,没有安装Python环境的电脑小白使用。
如果想了解,加入我们群,下载小白量化软件使用。用户像安装一个普通windows程序那样来安装Python编写的程序。你可以把你的Python程序通过HP_tk美化后,打包为exe文件,可以在任何人的电脑上展示。

HP_tk.py是小白量化提供的模块之一。完整代码见《零基础搭建量化投资系统――以Python为工具》一书提供的完整示例。
该书在京东、淘宝、当当网上销售,欢迎大家订购正版书。

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
#独狼荷蒲qq:2775205
#通通小白python量化群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析

其他QQ群:
PythonTkinterGUI : 517029284
Python学习交流: 647866213

发布了56 篇原创文章 · 获赞 67 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/103940576