Compare commits

...

9 Commits

  1. 5
      frontend/components_lib/__init__.py
  2. 47
      frontend/components_lib/comp_libs.py
  3. 1
      frontend/components_lib/constant.py
  4. 11
      frontend/components_lib/panel.py
  5. 3
      frontend/static_pages/login_page.py
  6. 285
      frontend/static_pages/main_page.py
  7. 199
      frontend/static_pages/new_bill_page.py
  8. 2152
      wx_form.fbp

5
frontend/components_lib/__init__.py

@ -19,10 +19,13 @@ __all__ = [
"FileDirPickerParam",
"FileDirPicker",
"GridTable",
"PhoneVerifyCodeComponent",
"SearchComboBox",
]
from frontend.components_lib.comp_libs import (
ComponentWith3Cols, DropList, InputLabel, ButtonGropu, FileDirPicker, GridTable
ComponentWith3Cols, DropList, InputLabel, ButtonGropu, FileDirPicker, GridTable, PhoneVerifyCodeComponent,
SearchComboBox
)
from frontend.components_lib.constant import (
FontSize, ButtonClass, LayoutParams, FileDirPickerParam

47
frontend/components_lib/comp_libs.py

@ -180,7 +180,6 @@ class ButtonGropu:
exit_btn_name,
submit_btn_name,
spacer,
bottom_spacer,
layout,
font=FontSize.BUTTON_SIZE
):
@ -190,7 +189,6 @@ class ButtonGropu:
:param exit_btn_name: 取消按钮的名称
:param submit_btn_name: 提交按钮的名称
:param spacer: 按钮间的空白占位
:param bottom_spacer: 按钮距页面底部边框的空白占位
:param layout: 用于排版的参数
:param font:
"""
@ -205,7 +203,6 @@ class ButtonGropu:
self.__exit_btn = wx.Button(parent, **__exit)
self.__spacer = spacer
self.__submit_btn = wx.Button(parent, **__submit)
self.__bottom_spacer = bottom_spacer
# 设定按钮字体
self.__exit_btn.SetFont(wx.Font(**font))
@ -216,8 +213,7 @@ class ButtonGropu:
item = (
(self.__exit_btn, *self.__layout),
(self.__spacer, *self.__layout),
(self.__submit_btn, *self.__layout),
(self.__bottom_spacer, *self.__layout)
(self.__submit_btn, *self.__layout)
)
return item
@ -341,3 +337,44 @@ class PhoneVerifyCodeComponent:
self._code, self._get_code_btn
)
return item
class SearchComboBox(wx.ComboBox):
def __init__(self, parent, choices):
wx.ComboBox.__init__(self, parent, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, choices, 0)
self.choices = choices
self.ignoreEvtText = False
self.initUI()
def initUI(self):
self.Bind(wx.EVT_TEXT, self.textChange)
def get_choices(self, args):
return
def textChange(self, event):
current_text = event.GetString()
if self.ignoreEvtText:
return
# 这里先判断内容是否为空,如果为空的话,需要让下拉菜单隐藏起来
if current_text == '':
self.ignoreEvtText = True
self.SetItems(self.choices)
self.Dismiss()
self.ignoreEvtText = False
return
choice_temp = self.get_choices(current_text)
if choice_temp:
if len(choice_temp) == 1 and choice_temp[0] == current_text:
return
self.ignoreEvtText = True
self.SetItems(choice_temp)
self.Popup()
self.SetValue(current_text)
self.SetInsertionPoint(len(current_text))
self.ignoreEvtText = False
return
self.Dismiss()
self.SetInsertionPoint(len(current_text))

1
frontend/components_lib/constant.py

@ -50,6 +50,7 @@ class LayoutParams:
"""
VER_LAYOUT = (0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 5)
HOR_LAYOUT = (0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 5)
SPC_LAYOUT = (0, wx.ALIGN_CENTER_HORIZONTAL, 5)
class FileDirPickerParam:

11
frontend/components_lib/panel.py

@ -110,9 +110,6 @@ class Panel(wx.Panel):
# 创建标题sizer
title_sizer = self.flex_sizer_generater(0, 1, 0, 0)
# 设定标题距离页面顶部的空白占位
title_sizer.Add((0, 10), 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
# 创建标题组件
self._page_title = wx.StaticText(self, **title_obj)
self._page_title.Wrap(-1)
@ -123,8 +120,6 @@ class Panel(wx.Panel):
# 将标题组件添加到标题 sizer 中
title_sizer.Add(self._page_title, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
# 创建标题底部距离页面body顶部的空白占位
title_sizer.Add((0, 20), 1, wx.EXPAND, 5)
return title_sizer
def content_components(self):
@ -139,7 +134,6 @@ class Panel(wx.Panel):
exit_btn_name,
submit_btn_name,
horizontal,
bottom,
layout,
font=FontSize.BUTTON_SIZE
):
@ -148,15 +142,14 @@ class Panel(wx.Panel):
:param exit_btn_name: 取消按钮名称
:param submit_btn_name: 提交按钮名称
:param horizontal: 按钮间空白占位
:param bottom: 按钮距离底部的空白占位
:param layout: 用于排版的参数
:param font: 字体
:return:
"""
btn_sizer = self.flex_sizer_generater(0, 3, 0, 0)
# 创建按钮组
btn_group = ((self.exit_btn, *_), _, (self.submit_btn, *_), _) = ButtonGropu(
self, exit_btn_name, submit_btn_name, horizontal, bottom, layout, font).get_item
btn_group = ((self.exit_btn, *_), _, (self.submit_btn, *_)) = ButtonGropu(
self, exit_btn_name, submit_btn_name, horizontal, layout, font).get_item
# 将按钮组添加到按钮 sizer
btn_sizer.AddMany(btn_group)

3
frontend/static_pages/login_page.py

@ -6,9 +6,8 @@ import requests
import wx
from frontend.components_lib import (
Frame, Panel, LayoutParams, FontSize, InputLabel
Frame, Panel, LayoutParams, FontSize, InputLabel, PhoneVerifyCodeComponent
)
from frontend.components_lib.comp_libs import PhoneVerifyCodeComponent
class LoginBody(Panel):

285
frontend/static_pages/main_page.py

@ -7,26 +7,15 @@
@description: The new python script
"""
###########################################################################
## Python code generated with wxFormBuilder (version 3.10.1-0-g8feb16b3)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################
import wx
import wx.xrc
###########################################################################
## Class MainPage
###########################################################################
class MainPage(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
size=wx.Size(800, 600), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"钱都去哪了", pos=wx.DefaultPosition, size=wx.Size(800, 600),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
self.SetBackgroundColour(wx.Colour(255, 255, 255))
@ -46,13 +35,13 @@ class MainPage(wx.Frame):
title_sizer.SetFlexibleDirection(wx.BOTH)
title_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.m_staticText6 = wx.StaticText(self.body, wx.ID_ANY, u"钱都去哪了", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText6.Wrap(-1)
self.page_title = wx.StaticText(self.body, wx.ID_ANY, u"钱都去哪了", wx.DefaultPosition, wx.DefaultSize, 0)
self.page_title.Wrap(-1)
self.m_staticText6.SetFont(
wx.Font(22, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.page_title.SetFont(
wx.Font(24, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
title_sizer.Add(self.m_staticText6, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
title_sizer.Add(self.page_title, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
body_sizer.Add(title_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
@ -62,159 +51,157 @@ class MainPage(wx.Frame):
content_sizer.SetFlexibleDirection(wx.BOTH)
content_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
fgSizer12 = wx.FlexGridSizer(0, 11, 0, 0)
fgSizer12.SetFlexibleDirection(wx.BOTH)
fgSizer12.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
content_top_sizer = wx.FlexGridSizer(0, 11, 0, 0)
content_top_sizer.SetFlexibleDirection(wx.BOTH)
content_top_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.m_staticText7 = wx.StaticText(self.body, wx.ID_ANY, u"月总预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText7.Wrap(-1)
self.mon_total_text = wx.StaticText(self.body, wx.ID_ANY, u"月总预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.mon_total_text.Wrap(-1)
self.m_staticText7.SetFont(
self.mon_total_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText7, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.mon_total_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl5 = wx.TextCtrl(self.body, wx.ID_ANY, u"3012", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl5.SetFont(
self.mon_total_val = wx.TextCtrl(self.body, wx.ID_ANY, u"3012", wx.DefaultPosition, wx.DefaultSize, 0)
self.mon_total_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl5.Enable(False)
self.mon_total_val.Enable(False)
fgSizer12.Add(self.m_textCtrl5, 0, wx.ALL, 5)
content_top_sizer.Add(self.mon_total_val, 0, wx.ALL, 5)
fgSizer12.Add((20, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_staticText15 = wx.StaticText(self.body, wx.ID_ANY, u"月余预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText15.Wrap(-1)
self.mon_blce_text = wx.StaticText(self.body, wx.ID_ANY, u"月余预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.mon_blce_text.Wrap(-1)
self.m_staticText15.SetFont(
self.mon_blce_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText15, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.mon_blce_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl6 = wx.TextCtrl(self.body, wx.ID_ANY, u"2930", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl6.SetFont(
self.mon_blce_val = wx.TextCtrl(self.body, wx.ID_ANY, u"2930", wx.DefaultPosition, wx.DefaultSize, 0)
self.mon_blce_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl6.Enable(False)
self.mon_blce_val.Enable(False)
fgSizer12.Add(self.m_textCtrl6, 0, wx.ALL, 5)
content_top_sizer.Add(self.mon_blce_val, 0, wx.ALL, 5)
fgSizer12.Add((20, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_staticText11 = wx.StaticText(self.body, wx.ID_ANY, u"剩余天数", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText11.Wrap(-1)
self.days_text = wx.StaticText(self.body, wx.ID_ANY, u"剩余天数", wx.DefaultPosition, wx.DefaultSize, 0)
self.days_text.Wrap(-1)
self.m_staticText11.SetFont(
self.days_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText11, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.days_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl10 = wx.TextCtrl(self.body, wx.ID_ANY, u"29", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl10.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl10.Enable(False)
self.days_val = wx.TextCtrl(self.body, wx.ID_ANY, u"29", wx.DefaultPosition, wx.DefaultSize, 0)
self.days_val.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.days_val.Enable(False)
fgSizer12.Add(self.m_textCtrl10, 0, wx.ALL, 5)
content_top_sizer.Add(self.days_val, 0, wx.ALL, 5)
self.m_staticText9 = wx.StaticText(self.body, wx.ID_ANY, u"日总预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText9.Wrap(-1)
self.day_total_text = wx.StaticText(self.body, wx.ID_ANY, u"日总预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_total_text.Wrap(-1)
self.m_staticText9.SetFont(
self.day_total_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText9, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.day_total_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl9 = wx.TextCtrl(self.body, wx.ID_ANY, u"115", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl9.SetFont(
self.day_total_val = wx.TextCtrl(self.body, wx.ID_ANY, u"115", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_total_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl9.Enable(False)
self.day_total_val.Enable(False)
fgSizer12.Add(self.m_textCtrl9, 0, wx.ALL, 5)
content_top_sizer.Add(self.day_total_val, 0, wx.ALL, 5)
fgSizer12.Add((20, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_staticText12 = wx.StaticText(self.body, wx.ID_ANY, u"今日消费", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText12.Wrap(-1)
self.day_csm_text = wx.StaticText(self.body, wx.ID_ANY, u"今日消费", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_csm_text.Wrap(-1)
self.m_staticText12.SetFont(
self.day_csm_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText12, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.day_csm_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl8 = wx.TextCtrl(self.body, wx.ID_ANY, u"46", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl8.SetFont(
self.day_csm_val = wx.TextCtrl(self.body, wx.ID_ANY, u"46", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_csm_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl8.Enable(False)
self.day_csm_val.Enable(False)
fgSizer12.Add(self.m_textCtrl8, 0, wx.ALL, 5)
content_top_sizer.Add(self.day_csm_val, 0, wx.ALL, 5)
fgSizer12.Add((20, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_staticText16 = wx.StaticText(self.body, wx.ID_ANY, u"日余预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText16.Wrap(-1)
self.day_blce_text = wx.StaticText(self.body, wx.ID_ANY, u"日余预算", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_blce_text.Wrap(-1)
self.m_staticText16.SetFont(
self.day_blce_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
fgSizer12.Add(self.m_staticText16, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add(self.day_blce_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
fgSizer12.Add((5, 0), 1, wx.EXPAND, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.m_textCtrl7 = wx.TextCtrl(self.body, wx.ID_ANY, u"69", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_textCtrl7.SetFont(
self.day_blce_val = wx.TextCtrl(self.body, wx.ID_ANY, u"69", wx.DefaultPosition, wx.DefaultSize, 0)
self.day_blce_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_textCtrl7.Enable(False)
self.day_blce_val.Enable(False)
fgSizer12.Add(self.m_textCtrl7, 0, wx.ALL, 5)
content_top_sizer.Add(self.day_blce_val, 0, wx.ALL, 5)
content_sizer.Add(fgSizer12, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
content_sizer.Add(content_top_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
content_sizer.Add((0, 5), 1, wx.EXPAND, 5)
fgSizer13 = wx.FlexGridSizer(0, 1, 0, 0)
fgSizer13.SetFlexibleDirection(wx.BOTH)
fgSizer13.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
content_btm_sizer = wx.FlexGridSizer(0, 1, 0, 0)
content_btm_sizer.SetFlexibleDirection(wx.BOTH)
content_btm_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
fgSizer13.SetMinSize(wx.Size(700, 290))
sbSizer3 = wx.StaticBoxSizer(wx.StaticBox(self.body, wx.ID_ANY, u"账单列表"), wx.VERTICAL)
content_btm_sizer.SetMinSize(wx.Size(700, 290))
bill_list_sizer = wx.StaticBoxSizer(wx.StaticBox(self.body, wx.ID_ANY, u"账单列表"), wx.VERTICAL)
sbSizer3.SetMinSize(wx.Size(700, 290))
self.m_scrolledWindow1 = wx.ScrolledWindow(sbSizer3.GetStaticBox(), wx.ID_ANY, wx.DefaultPosition,
wx.DefaultSize, wx.HSCROLL | wx.VSCROLL)
self.m_scrolledWindow1.SetScrollRate(5, 5)
self.m_scrolledWindow1.SetMinSize(wx.Size(700, 290))
self.m_scrolledWindow1.SetMaxSize(wx.Size(700, 290))
bill_list_sizer.SetMinSize(wx.Size(700, 290))
self.bills_list_body = wx.ScrolledWindow(bill_list_sizer.GetStaticBox(), wx.ID_ANY, wx.DefaultPosition,
wx.DefaultSize, wx.HSCROLL | wx.VSCROLL)
self.bills_list_body.SetScrollRate(5, 5)
self.bills_list_body.SetMinSize(wx.Size(700, 290))
self.bills_list_body.SetMaxSize(wx.Size(700, 290))
fgSizer14 = wx.FlexGridSizer(0, 1, 0, 0)
fgSizer14.SetFlexibleDirection(wx.BOTH)
fgSizer14.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
bills_sizer = wx.FlexGridSizer(0, 1, 0, 0)
bills_sizer.SetFlexibleDirection(wx.BOTH)
bills_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
fgSizer14.SetMinSize(wx.Size(700, 290))
self.m_checkBox63 = wx.CheckBox(self.m_scrolledWindow1, wx.ID_ANY,
u"{id}·|·{date}·|·{time}·|·{value}·|·{tag}·|·{details}", wx.DefaultPosition,
wx.DefaultSize, 0)
self.m_checkBox63.SetFont(
wx.Font(14, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "微软雅黑"))
bills_sizer.SetMinSize(wx.Size(700, 290))
self.bill = wx.CheckBox(self.bills_list_body, wx.ID_ANY,
u"{id}·|·{date}·|·{time}·|·{value}·|·{tag}·|·{details}", wx.DefaultPosition,
wx.DefaultSize, 0)
self.bill.SetFont(wx.Font(14, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "微软雅黑"))
fgSizer14.Add(self.m_checkBox63, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
bills_sizer.Add(self.bill, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
self.m_scrolledWindow1.SetSizer(fgSizer14)
self.m_scrolledWindow1.Layout()
fgSizer14.Fit(self.m_scrolledWindow1)
sbSizer3.Add(self.m_scrolledWindow1, 0, wx.ALL, 5)
self.bills_list_body.SetSizer(bills_sizer)
self.bills_list_body.Layout()
bills_sizer.Fit(self.bills_list_body)
bill_list_sizer.Add(self.bills_list_body, 0, wx.ALL, 5)
fgSizer13.Add(sbSizer3, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
content_btm_sizer.Add(bill_list_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
content_sizer.Add(fgSizer13, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
content_sizer.Add(content_btm_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
body_sizer.Add(content_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
@ -224,35 +211,32 @@ class MainPage(wx.Frame):
btn_sizer.SetFlexibleDirection(wx.BOTH)
btn_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.m_button4 = wx.Button(self.body, wx.ID_ANY, u"退出系统", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_button4.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.exit_btn = wx.Button(self.body, wx.ID_ANY, u"退出系统", wx.DefaultPosition, wx.DefaultSize, 0)
self.exit_btn.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.m_button4, 0, wx.ALL, 5)
btn_sizer.Add(self.exit_btn, 0, wx.ALL, 5)
btn_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_button6 = wx.Button(self.body, wx.ID_ANY, u"批量删除", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_button6.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.del_btn = wx.Button(self.body, wx.ID_ANY, u"批量删除", wx.DefaultPosition, wx.DefaultSize, 0)
self.del_btn.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.m_button6, 0, wx.ALL, 5)
btn_sizer.Add(self.del_btn, 0, wx.ALL, 5)
btn_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_button5 = wx.Button(self.body, wx.ID_ANY, u"日终结算", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_button5.SetFont(
self.settle_btn = wx.Button(self.body, wx.ID_ANY, u"日终结算", wx.DefaultPosition, wx.DefaultSize, 0)
self.settle_btn.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.m_button5, 0, wx.ALL, 5)
btn_sizer.Add(self.settle_btn, 0, wx.ALL, 5)
btn_sizer.Add((20, 0), 1, wx.EXPAND, 5)
self.m_button7 = wx.Button(self.body, wx.ID_ANY, u"新增记账", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_button7.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.add_btn = wx.Button(self.body, wx.ID_ANY, u"新增记账", wx.DefaultPosition, wx.DefaultSize, 0)
self.add_btn.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.m_button7, 0, wx.ALL, 5)
btn_sizer.Add(self.add_btn, 0, wx.ALL, 5)
body_sizer.Add(btn_sizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
@ -265,22 +249,57 @@ class MainPage(wx.Frame):
self.SetSizer(page_sizer)
self.Layout()
self.m_menubar2 = wx.MenuBar(0)
self.m_menubar2.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.user_bar = wx.MenuBar(0)
self.user_bar.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.m_menu2 = wx.Menu()
self.m_menu21 = wx.Menu()
self.m_menu2.AppendSubMenu(self.m_menu21, u"绑定手机")
self.user = wx.Menu()
self.bind_phone = wx.MenuItem(self.user, wx.ID_ANY, u"绑定手机", wx.EmptyString, wx.ITEM_NORMAL)
self.user.Append(self.bind_phone)
self.m_menu3 = wx.Menu()
self.m_menu2.AppendSubMenu(self.m_menu3, u"退出登录")
self.logout = wx.MenuItem(self.user, wx.ID_ANY, u"退出登录", wx.EmptyString, wx.ITEM_NORMAL)
self.user.Append(self.logout)
self.m_menubar2.Append(self.m_menu2, u"用户名")
self.user_bar.Append(self.user, u"用户名")
self.SetMenuBar(self.m_menubar2)
self.SetMenuBar(self.user_bar)
self.Centre(wx.BOTH)
# Connect Events
self.exit_btn.Bind(wx.EVT_LEFT_UP, self.on_exit_click)
self.del_btn.Bind(wx.EVT_LEFT_UP, self.del_bills)
self.settle_btn.Bind(wx.EVT_LEFT_UP, self.end_of_day_settle)
self.add_btn.Bind(wx.EVT_LEFT_UP, self.new_bill)
self.Bind(wx.EVT_MENU, self.on_bind_phone_click, id=self.bind_phone.GetId())
self.Bind(wx.EVT_MENU, self.logout, id=self.logout.GetId())
def __del__(self):
pass
# Virtual event handlers, override them in your derived class
def on_exit_click(self, event):
event.Skip()
def del_bills(self, event):
event.Skip()
def end_of_day_settle(self, event):
event.Skip()
def new_bill(self, event):
event.Skip()
def on_bind_phone_click(self, event):
popup = wx.MessageDialog(None, "你要绑定手机", "绑定手机", wx.YES_DEFAULT)
if popup.ShowModal() == wx.ID_YES:
self.Close()
def logout(self, event):
event.Skip()
if __name__ == '__main__':
app = wx.App()
frame = MainPage(None)
frame.Show()
app.MainLoop()

199
frontend/static_pages/new_bill_page.py

@ -0,0 +1,199 @@
# encoding: utf-8
"""
@author: Qiancj
@contact: qiancj@risenenergy.com
@file: new_bill_page
@create-time: 2023-08-23 10:24
@description: The new python script
"""
import wx
import wx.xrc
import wx.adv
class NewBillPage(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"新增账单", pos=wx.DefaultPosition, size=wx.Size(560, 295),
style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.TAB_TRAVERSAL)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
self.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
self.SetBackgroundColour(wx.Colour(255, 255, 255))
page_sizer = wx.BoxSizer(wx.VERTICAL)
self.body = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
body_sizer = wx.FlexGridSizer(0, 1, 0, 0)
body_sizer.SetFlexibleDirection(wx.BOTH)
body_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
body_sizer.Add((0, 15), 1, wx.EXPAND, 5)
title_sizer = wx.FlexGridSizer(0, 1, 0, 0)
title_sizer.SetFlexibleDirection(wx.BOTH)
title_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.page_title = wx.StaticText(self.body, wx.ID_ANY, u"又花钱了呀", wx.DefaultPosition, wx.DefaultSize, 0)
self.page_title.Wrap(-1)
self.page_title.SetFont(
wx.Font(24, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
title_sizer.Add(self.page_title, 0, wx.ALL, 5)
body_sizer.Add(title_sizer, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 5)
body_sizer.Add((0, 10), 1, wx.EXPAND, 5)
content_top_sizer = wx.FlexGridSizer(0, 7, 0, 0)
content_top_sizer.SetFlexibleDirection(wx.BOTH)
content_top_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.date_text = wx.StaticText(self.body, wx.ID_ANY, u"日期", wx.DefaultPosition, wx.DefaultSize, 0)
self.date_text.Wrap(-1)
self.date_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.date_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.date_val = wx.adv.DatePickerCtrl(self.body, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition,
wx.Size(150, -1), wx.adv.DP_DEFAULT)
self.date_val.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.date_val, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
content_top_sizer.Add((50, 0), 1, wx.EXPAND, 5)
self.time_text = wx.StaticText(self.body, wx.ID_ANY, u"时间", wx.DefaultPosition, wx.DefaultSize, 0)
self.time_text.Wrap(-1)
self.time_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.time_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.time_val = wx.adv.TimePickerCtrl(self.body, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition,
wx.Size(150, -1), wx.adv.TP_DEFAULT)
self.time_val.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.time_val, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
self.amount_text = wx.StaticText(self.body, wx.ID_ANY, u"金额", wx.DefaultPosition, wx.DefaultSize, 0)
self.amount_text.Wrap(-1)
self.amount_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.amount_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.amount_val = wx.TextCtrl(self.body, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(150, -1), 0)
self.amount_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.amount_val, 0, wx.ALL, 5)
content_top_sizer.Add((50, 0), 1, wx.EXPAND, 5)
self.m_staticText23 = wx.StaticText(self.body, wx.ID_ANY, u"标签", wx.DefaultPosition, wx.DefaultSize, 0)
self.m_staticText23.Wrap(-1)
self.m_staticText23.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.m_staticText23, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_top_sizer.Add((5, 0), 1, wx.EXPAND, 5)
tag_valChoices = []
self.tag_val = wx.ComboBox(self.body, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(150, -1),
tag_valChoices, 0)
self.tag_val.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_top_sizer.Add(self.tag_val, 0, wx.ALL, 5)
body_sizer.Add(content_top_sizer, 1, wx.EXPAND, 5)
content_btm_sizer = wx.FlexGridSizer(0, 3, 0, 0)
content_btm_sizer.SetFlexibleDirection(wx.BOTH)
content_btm_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.details_text = wx.StaticText(self.body, wx.ID_ANY, u"详情", wx.DefaultPosition, wx.DefaultSize, 0)
self.details_text.Wrap(-1)
self.details_text.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_btm_sizer.Add(self.details_text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
content_btm_sizer.Add((5, 0), 1, wx.EXPAND, 5)
self.details_val = wx.TextCtrl(self.body, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(415, -1), 0)
self.details_val.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
content_btm_sizer.Add(self.details_val, 0, wx.ALL, 5)
body_sizer.Add(content_btm_sizer, 1, wx.EXPAND, 5)
body_sizer.Add((0, 10), 1, wx.EXPAND, 5)
btn_sizer = wx.FlexGridSizer(0, 3, 0, 0)
btn_sizer.SetFlexibleDirection(wx.BOTH)
btn_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
self.exit_btn = wx.ToggleButton(self.body, wx.ID_ANY, u"取消", wx.DefaultPosition, wx.DefaultSize, 0)
self.exit_btn.SetFont(wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.exit_btn, 0, wx.ALL, 5)
btn_sizer.Add((60, 0), 1, wx.EXPAND, 5)
self.submit_btn = wx.ToggleButton(self.body, wx.ID_ANY, u"提交", wx.DefaultPosition, wx.DefaultSize, 0)
self.submit_btn.SetFont(
wx.Font(14, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "黑体"))
btn_sizer.Add(self.submit_btn, 0, wx.ALL, 5)
body_sizer.Add(btn_sizer, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 5)
body_sizer.Add((0, 15), 1, wx.EXPAND, 5)
self.body.SetSizer(body_sizer)
self.body.Layout()
body_sizer.Fit(self.body)
page_sizer.Add(self.body, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
self.SetSizer(page_sizer)
self.Layout()
self.Centre(wx.BOTH)
# Connect Events
self.exit_btn.Bind(wx.EVT_LEFT_UP, self.on_exit_click)
self.submit_btn.Bind(wx.EVT_LEFT_UP, self.on_submit_click)
def __del__(self):
pass
# Virtual event handlers, override them in your derived class
def on_exit_click(self, event):
self.Destroy()
def on_submit_click(self, event):
event.Skip()
if __name__ == '__main__':
app = wx.App()
frame = NewBillPage(None)
frame.Show()
app.MainLoop()

2152
wx_form.fbp

File diff suppressed because it is too large
Loading…
Cancel
Save