Browse Source

重新封装,添加参数

dev
qiancj 9 months ago
parent
commit
a6d3cbe76f
  1. 7
      frontend/components_lib/frame.py
  2. 15
      frontend/components_lib/panel.py
  3. 27
      frontend/static_pages/login_page.py

7
frontend/components_lib/frame.py

@ -24,7 +24,8 @@ class Frame(wx.Frame):
min_size=(-1, -1),
max_size=(-1, -1),
bg_color=wx.Colour(255, 255, 255),
style=wx.DEFAULT_FRAME_STYLE
style=wx.DEFAULT_FRAME_STYLE,
page_title=""
):
if isinstance(size, tuple):
size = wx.Size(*size)
@ -45,6 +46,7 @@ class Frame(wx.Frame):
self.__min_size = min_size
self.__max_size = max_size
self._body = None
self._page_title = page_title
self.__bg_color = bg_color
self.__size = size
@ -66,8 +68,7 @@ class Frame(wx.Frame):
out_sizer.SetMinSize(wx.Size(*size))
return out_sizer
@staticmethod
def get_body(parent, _id, pos, size, style):
def get_body(self, parent, _id, pos, size, style):
"""
调用 body 类来获取页面
:param parent:

15
frontend/components_lib/panel.py

@ -44,7 +44,8 @@ class Panel(wx.Panel):
_id,
pos=wx.DefaultPosition,
size=wx.DefaultSize,
style=wx.TAB_TRAVERSAL
style=wx.TAB_TRAVERSAL,
page_title=""
):
wx.Panel.__init__(
self,
@ -54,7 +55,7 @@ class Panel(wx.Panel):
size,
style
)
self.page_title = None
self._page_title = page_title
self.exit_btn = None
self.submit_btn = None
self.body_sizer = None
@ -113,14 +114,14 @@ class Panel(wx.Panel):
title_sizer.Add((0, 10), 0, wx.ALIGN_CENTER_HORIZONTAL, 5)
# 创建标题组件
self.page_title = wx.StaticText(self, **title_obj)
self.page_title.Wrap(-1)
self._page_title = wx.StaticText(self, **title_obj)
self._page_title.Wrap(-1)
# 设定标题字体
self.page_title.SetFont(wx.Font(**font))
self._page_title.SetFont(wx.Font(**font))
# 将标题组件添加到标题 sizer 中
title_sizer.Add(self.page_title, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
title_sizer.Add(self._page_title, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
# 创建标题底部距离页面body顶部的空白占位
title_sizer.Add((0, 20), 1, wx.EXPAND, 5)
@ -131,7 +132,7 @@ class Panel(wx.Panel):
这个方法便是每个页面的 content 部分由子类中实现
:return:
"""
return
pass
def button_components(
self,

27
frontend/static_pages/login_page.py

@ -8,8 +8,8 @@ from frontend.components_lib import (
class LoginBody(Panel):
def __init__(self, parent, _id, pos, size, style):
Panel.__init__(self, parent, _id, pos, size, style)
def __init__(self, parent, _id, pos, size, style, page_title):
Panel.__init__(self, parent, _id, pos, size, style, page_title)
self.drop_list = None
self.username = None
self.pwd = None
@ -24,7 +24,7 @@ class LoginBody(Panel):
self.title_components(
{
"id": wx.ID_ANY,
"label": "登 录",
"label": self._page_title,
"pos": wx.DefaultPosition,
"size": wx.DefaultSize,
"style": 0
@ -106,21 +106,20 @@ class PhonePage(Panel):
{"id": wx.ID_ANY, "pos": wx.DefaultPosition, "size": wx.Size(260, -1), "style": 0, "value": ""},
FontSize.CONTENT_SIZE, LayoutParams.VER_LAYOUT
).get_item
code = (_, _, ((self.code_val, *_), _, (self.get_code_btn, *_))) =
code = (_, _, ((self.code_val, *_), _, (self.get_code_btn, *_))) = 0
# 将文件选择器组件添加到 sizer 中
comp_sizer.AddMany(user)
return comp_sizer
class LoginPage(Frame):
def __init__(self, parent, title, size):
Frame.__init__(self, parent, title=title, size=size)
self.__size = size
# 调用 hook
self.show()
@staticmethod
def get_body(parent, _id, pos, size, style):
def __init__(self, parent, title, size, page_title):
Frame.__init__(self, parent, title=title, size=size, page_title=page_title)
# self.__size = size
# # 调用 hook
# self.show()
def get_body(self, parent, _id, pos, size, style):
"""
调用 body 类来获取页面
:param parent:
@ -130,7 +129,7 @@ class LoginPage(Frame):
:param style:
:return:
"""
body_panel = LoginBody(parent, _id, pos, size, style)
body_panel = LoginBody(parent, _id, pos, size, style, self._page_title)
return body_panel
def event_bind(self):
@ -354,6 +353,6 @@ class LoginPage1(wx.Frame):
if __name__ == '__main__':
app = wx.App()
# frame = LoginPage1(None)
frame = LoginPage(None, "登录", size=(500, 300))
frame = LoginPage(None, "登录", size=(500, 300), page_title="登录")
frame.Show()
app.MainLoop()

Loading…
Cancel
Save