使用Python Tkinter库打造简陋股票补仓计算器桌面应用

2024年05月19日12:25:08 科技 1790

前言

大家好,最近洒家在股市里亏麻了,洒家就寻思用python捣鼓一个简陋的股票补仓计算器的桌面小工具,方便随时计算补仓成本,废话不多说,咱们这就开干!

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻


编程环境

1.文中电脑操作系统:win7


2.文中所使用的python模块:

(1).Tkinter (标准库,不需要pip安装)

(2).pyinstaller (第三方模块,需要pip安装)

安装命令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

官方文档:https://www.pyinstaller.org/


3.文中所使用的IDE:pycharm2022版


界面简陋的设计


使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻


完整代码

from tkinter import *


class BC(Frame): #继承Frame组件
    title_BC = '计算公式:(第一次买入数量*买入价+第二次买入数量*买入价+交易费用)/(第一次买入数量+第二次买入数量)'

    def __init__(self):
        super(BC, self).__init__()
        self.number_1 = StringVar(value='请输入第一次买入的数量')
        self.number_2 = StringVar(value='请输入第二次买入的数量')
        self.price_1 = StringVar(value='请输入第一次买入的价格')
        self.price_2 = StringVar(value='请输入第二次买入的价格')
        self.commission = StringVar(value='请输入手续费')
        self.result = StringVar()

    def set_label(self, text, row, column, columnspan=None, sticky=E + W):
    		''' 设置界面里的标签组件 '''
        Label(
            self,
            border=1,
            font=('微软雅黑', 10, 'bold'),
            text=text,
        ).grid(row=row, column=column, columnspan=columnspan, sticky=sticky)

    def set_entry(self, var, row, column, sticky=E + W):
    	''' 设置界面里的输入框组件 '''
        en = Entry(
            self,
            border=1,
            font=('微软雅黑', 10, 'bold'),
            textvariable=var,
            justify='center',
        )
        en.grid(row=row, column=column, sticky=sticky)
        en.bind("<Button-1>", lambda e: var.set(''))

    def set_but(self, text, row, column, columnspan=None, sticky=E + W, cb=None):
    	''' 设置界面里的按钮组件 '''
        Button(
            self,
            text=text,
            border=1,
            font=('微软雅黑', 12, 'bold'),
            command=cb #绑定计算方法
        ).grid(row=row, column=column, columnspan=columnspan)

    def compute(self):
       #   计算补仓结果的方法
        # (第一次买入数量*买入价+第二次买入数量*买入价+交易费用)/(第一次买入数量+第二次买入数量)
        try:
            data = [
                float(self.number_1.get()),
                float(self.number_2.get()),
                float(self.price_1.get()),
                float(self.price_2.get()),
                float(self.commission.get()),
            ]
            n1, n2, p1, p2, c = data
            result = (n1 * p1 + n2 * p2 + c) / (n1 + n2)
            self.result.set(result)
        except BaseException as e:
            # print(e)
            self.result.set('Eorr')

    def run(self):
    	'''设置主窗口并在主窗口中放置按钮组件 输入框组件 标签组件'''
        self.master.title('补仓计算器_By李文博')
        self.pack()
        self.set_label(text=BC.title_BC, row=0, column=0, columnspan=4)
        self.set_label(text='第一次买入数量', row=1, column=0)
        self.set_entry(var=self.number_1, row=1, column=1)
        self.set_label(text='第一次买入价格', row=1, column=2)
        self.set_entry(var=self.price_1, row=1, column=3)
        self.set_label(text='第二次买入数量', row=2, column=0)
        self.set_entry(var=self.number_2, row=2, column=1)
        self.set_label(text='第二次买入价格', row=2, column=2)
        self.set_entry(var=self.price_2, row=2, column=3)
        self.set_label(text='手续费', row=3, column=0)
        self.set_entry(var=self.commission, row=3, column=1)
        self.set_label(text='计算结果', row=3, column=2)
        self.set_entry(var=self.result, row=3, column=3)
        self.set_but(text='计算', row=4, column=0, 
                     columnspan=4, cb=self.compute)#绑定compute方法
        self.mainloop() #循环主窗口事件


if __name__ == '__main__':
    bc = BC()
    bc.run()

部分代码简述

 def set_entry(self, var, row, column, sticky=E + W):
    	''' 设置界面里的输入框组件 '''
        en = Entry(
            self,
            border=1,
            font=('微软雅黑', 10, 'bold'),
            textvariable=var,
            justify='center',
        )
        en.grid(row=row, column=column, sticky=sticky)
        en.bind("<Button-1>", lambda e: var.set('')) #绑定鼠标事件 效果捕获到输入框里光标时
                                                                               #清空输入里的内容 实际效果如下图

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻

捕获光标清空内容


打包成EXE桌面应用程序(Win系统)

1.找到代码所在的目录

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻

1.1

2.在终端打开PY文件

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻

3.在打开的终端输入打包命令:pyinstaller -F 要打包的.PY文件名称(PS:pyinstaller库具体使用可以查阅官方文档https://www.pyinstaller.org/百度,AI工具皆可)

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻

Pyinstaller -F -w BC.py Pyinstaller -F -w BC.py

4.回车执行打包命令,等待打包命令跑完后就会在PY文件的目录中生成2个文件夹 ,打包好的EXE运用程序就存放在dist文件夹里

使用Python Tkinter库打造简陋股票补仓计算器桌面应用 - 天天要闻


结语

至此,一个简陋的“股票补仓计算器”已经初具雏形,感兴趣的朋友可以自行在这个代码的基础上优化.

(END)

科技分类资讯推荐

柔宇科技破产清算获受理!刘姝威发声:曾拒绝华为投资! - 天天要闻

柔宇科技破产清算获受理!刘姝威发声:曾拒绝华为投资!

据全国企业破产重整案件信息网显示,6月6日,深圳市中级人民法院发布公告称,该法院已于2024年5月15日裁定受理深圳市柔宇科技股份有限公司(简称“柔宇科技”)破产清算一案,并指定广东华商律师事务所为柔宇科技管理人。根据最新消息,深圳市中级人民法院将于2024年9月13日召开第一次债权人会议。依法申报债权的债权人有权...
【新机】Lumia920复刻,诺基亚经典设计回归 - 天天要闻

【新机】Lumia920复刻,诺基亚经典设计回归

当年的Lumia 920可以说是一代经典机型了,搭载了骁龙S4处理器,蔡司镜头,还支持无线充电,要知道这可是一款2012年发布的老机子。运行Windows Phone 8系统,聚碳酸酯材质机身,但是颜值质感依然在线,特别是主打的骚黄配色。大家有用过Windows Phone手机吗?近日HMD Global正在研发一款型号为“Skyline”的手机,机子的外观
首发7999元!华硕无畏Pro15 2024高通版首发:骁龙X Elite与2.8K屏 - 天天要闻

首发7999元!华硕无畏Pro15 2024高通版首发:骁龙X Elite与2.8K屏

目前,华硕无畏Pro15 2024高通版已经在京东商城首发开售,售价7999元。华硕无畏Pro15 2024高通版搭载了最新的高通骁龙X Elite处理器。这款处理器作为高通家族的顶级之作,拥有强大的运算能力和高效的能耗比,无论是日常办公、娱乐游戏还是专业设计,都能轻松应对,为用户带来流畅无比的操作体验。更为引人注目的是,华硕无...
AI 文章检测:技术背后的文化互通与领悟 - 天天要闻

AI 文章检测:技术背后的文化互通与领悟

自涉足AI文章检测领域以来,本人的世界观及感情经历均产生深远影响。在此过程中,我不仅作为旁观者,同时也是参与者与感受者。今日愿将自身感悟及体验分享于诸位,盼能引发同感。
长辈用智能电视,有哪些适合他们的电视应用? - 天天要闻

长辈用智能电视,有哪些适合他们的电视应用?

智能电视现在的普及度已经很高了,使用体验对于年轻一辈来讲是很好的,但是对于长辈而言,可能操作相对复杂。针对这个问题,我们可以给智能电视安装一些简洁易用的软件,来帮助长辈更好的看电视:1、枫蜜直播枫蜜直播涵盖全国各省市多达1000+直播频道,
不买华为Pura70了,Mate70突然曝光 - 天天要闻

不买华为Pura70了,Mate70突然曝光

华为新旗舰现身,Mate70能否反超?近日,一款被称为Mate70的华为新旗舰手机在网上曝光,引发了广泛关注。从曝光的信息来看,Mate70系列将包括三款机型,分别是Mate70、Mate70 Pro和Mate70 RS,全系采用华为自主研
iPhone 15 Pro Max,随便用个五六年不是问题! - 天天要闻

iPhone 15 Pro Max,随便用个五六年不是问题!

iPhone 15 Pro Max使用年限,硬件优秀出众,5年过后还行吗?对于绝大多数消费者来说,手机的使用寿命是一个非常重要的考虑因素。手机不仅价格不菲,更是我们日常生活中不可或缺的数字助手。苹果作为业内领先的手机厂商,其产品一直以卓越的
起售价相差800元,一文了解vivo S19系列两款机型有啥差别,该咋选 - 天天要闻

起售价相差800元,一文了解vivo S19系列两款机型有啥差别,该咋选

日前,vivo新一代自拍神器S19系列正式首销,根据官方公布的首销数据显示,包括标准版、Pro两款新机的vivo S19系列首销日销量相较上一代同比增长了155%。据业内人士表示,仅与自家上代产品对比,而不与友商竞品对比,不但说明了官方对自家产品的信心,也证明了该系列机型获得的市场认可。那么,vivo S19系列标准版与Pro版起...