前言
大家好,最近洒家在股市裡虧麻了,洒家就尋思用python搗鼓一個簡陋的股票補倉計算器的桌面小工具,方便隨時計算補倉成本,廢話不多說,咱們這就開干!
編程環境
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版
界面簡陋的設計
完整代碼
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('')) #綁定滑鼠事件 效果捕獲到輸入框里游標時
#清空輸入里的內容 實際效果如下圖
捕獲游標清空內容
打包成EXE桌面應用程序(Win系統)
1.找到代碼所在的目錄
1.1
2.在終端打開PY文件
3.在打開的終端輸入打包命令:pyinstaller -F 要打包的.PY文件名稱(PS:pyinstaller庫具體使用可以查閱官方文檔https://www.pyinstaller.org/或百度,AI工具皆可)
Pyinstaller -F -w BC.py Pyinstaller -F -w BC.py
4.回車執行打包命令,等待打包命令跑完後就會在PY文件的目錄中生成2個文件夾 ,打包好的EXE運用程序就存放在dist文件夾里
結語
至此,一個簡陋的「股票補倉計算器」已經初具雛形,感興趣的朋友可以自行在這個代碼的基礎上優化.
(END)