用Tkinter打造GUI开发工具(25)Table表格控件

用Tkinter打造GUI开发工具(25)Table表格控件

采用Python自带Tkinter库开发GUI软件,学习负担为零,因此受到很多朋友喜爱。但是原始的Tkinter库控件比较简单,但是它为我们提供可以扩展新控件的空间。

Tkinter没有表格控件,我们可以采用2种方式来实现。
第一种,采用布局方式,画出表格。
在这里插入图片描述
上图实现的代码段

v2=tk.LabelFrame(root1, text="最佳策略",font = 'Helvetica %d'%fsize)
v2.place(x=570,y=2,width=300,height=170)

v3=tk.LabelFrame(root1, text="最高成功率",font = 'Helvetica %d'%fsize)
v3.place(x=880,y=2,width=300,height=170)


v2a=tk.Frame(v2,bg='black')
v2a.pack(expand=tk.YES,fill=tk.X,side=tk.TOP,padx=5,pady=5)

label1=tk.Label(v2a,text='最佳策略代码:',bg='yellow',font = 'Helvetica %d'%fsize)
label1.grid(row=0,column=0,padx=1,pady=1,sticky=tk.NSEW)
label2=tk.Label(v2a,text=' ',bg='yellow',font = 'Helvetica %d'%fsize)
label2.grid(row=0,column=1,padx=1, pady=1,sticky=tk.NSEW)

label3=tk.Label(v2a,text='成功率:',bg='yellow',font = 'Helvetica %d'%fsize)
label3.grid(row=1,column=0,padx=1,pady=1,sticky=tk.NSEW)
label4=tk.Label(v2a,text=' ',bg='yellow',font = 'Helvetica %d'%fsize) 
label4.grid(row=1,column=1,padx=1, pady=1,sticky=tk.NSEW)

label5=tk.Label(v2a,text='收益率:',bg='yellow',font = 'Helvetica %d'%fsize)
label5.grid(row=2,column=0,padx=1,pady=1,sticky=tk.NSEW)
label6=tk.Label(v2a,text=' ',bg='yellow',font = 'Helvetica %d'%fsize)
label6.grid(row=2,column=1,padx=1, pady=1,sticky=tk.NSEW)

label7=tk.Label(v2a,text='最大回撤:',bg='yellow',font = 'Helvetica %d'%fsize)
label7.grid(row=3,column=0,padx=1,pady=1,sticky=tk.NSEW)
label8=tk.Label(v2a,text=' ',bg='yellow',font = 'Helvetica %d'%fsize)
label8.grid(row=3,column=1,padx=1, pady=1,sticky=tk.NSEW)

label7a=tk.Label(v2a,text='股票代码:',bg='yellow',font = 'Helvetica %d'%fsize)
label7a.grid(row=4,column=0,padx=1,pady=1,sticky=tk.NSEW)
label8a=tk.Label(v2a,text=' ',bg='yellow',font = 'Helvetica %d'%fsize)
label8a.grid(row=4,column=1,padx=1, pady=1,sticky=tk.NSEW)

上面代码给出实现过程,如果看不明白,可以购买<零基础搭建量化投资系统>正版书,加入读者群咨询。
在这里插入图片描述
上图就是采用小白量化平台提供的模块为网友定制的T+0回测软件。

第二种,采用采用小白量化软件提供的HP_tk.py模块提供的Table表格控件。
见下图小白量化软件中的表格。
在这里插入图片描述
下面我们介绍用户如何使用小白量化平台提供的模块设计自己的表格。

import tkinter as tk
from tkinter import ttk
import HP_tk as htk #导入小白量化htk模块
import HP_tdx as htdx #导入小白量化通达信行情模块

#创建主窗口
root=htk.MainWindow(title='tkinter主窗口',x=0,y=0,w=600, h=600,picture='',zoom=True,center=True)

tb=htk.Table(root)   #创建表格控件
tb.pack(expand = 1, fill = tk.BOTH)

tdxapi=htdx.TdxInit2()  #连接通达信行情源
#获取深圳股票代码表
sz1=htdx.getSZ()
sz1=sz1.round(2)  #改变符点数小数点后2位
tb.load_df(sz1) #把变量df的数据显示到表格中
tb.brush('yellow','white')  #用2种底色交替显示表格

def rxt():
    print('日线图')

def zxg():
    print('加入自选股')

# 创建弹出菜单
menubar=tk.Menu(tb.tree)
toolbarName2 = ('日线图','分时图','F10信息','加入自选股')
toolbarCommand2 = (rxt,rxt,rxt,zxg)
def addPopButton(name,command):
    for (toolname ,toolcom) in zip(name,command):
        menubar.add_command(label=toolname,command=toolcom)

def pop(event):
    # Menu 类里面有一个 post 方法,它接收两个参数,即 x 和y 坐标,它会在相应的位置弹出菜单。
    menubar.post(event.x_root,event.y_root)

addPopButton(toolbarName2,toolbarCommand2) #创建弹出菜单
tb.tree.bind("<Button-3>",pop)

root.mainloop()   #开启tk主循环

程序执行结果如下图:
在这里插入图片描述
HP_tk.py和HP_tdx.py是小白量化提供的模块之一。完整代码见《零基础搭建量化投资系统――以Python为工具》一书提供的完整示例。
该书在京东、淘宝、当当网上销售,欢迎大家订购正版书。

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

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

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

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/103841541
今日推荐