使用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)

科技分類資訊推薦

【新機】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版起...
世界首次!中國大疆無人機刷新紀錄,珠穆朗瑪峰穿越成歷史時刻 - 天天要聞

世界首次!中國大疆無人機刷新紀錄,珠穆朗瑪峰穿越成歷史時刻

驚天動地!中國科技巨頭大疆創造了全球歷史性的壯舉,旗下無人機成功穿越世界之巔—珠穆朗瑪峰!這一創舉不僅震撼了全球科技界,也讓歐美國家徹底慌了手腳。中國科技的崛起,已經讓全球為之側目,這次的壯舉更是引發了一場前所未有的技術競賽。讓我們一起來看
獨家揭秘:享界s9盲訂破5萬台,文詠珊引爆美麗革命! - 天天要聞

獨家揭秘:享界s9盲訂破5萬台,文詠珊引爆美麗革命!

近日,令人矚目的消息傳出,知名品牌享界推出的最新款手機s9盲訂量已突破5萬台!令人激動的不僅是這一壯舉本身,更是其中的宣傳圖引發了無盡的讚歎和討論。一位網友稱讚道:「看完宣傳圖,文詠珊太美了!太適合了!」讓我們一起來揭開這個備受矚目的話題吧