用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 threadingglobal timer_interval
timer_interval=1 #时钟
global timer
global tk_image,pil_image,logolabel
def logo(root=g.root):global tk_image,pil_image,logolabelglobal timerpil_image =Image.open('img/bj.jpg')#获取图像的原始大小 w, h = pil_image.size w2=w+1h2=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 timerw1.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 = 800height = 700logoForm=selfhtk.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=rootx=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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
