提交 12d511ec 编写于 作者: 编程深海AiKoder's avatar 编程深海AiKoder 🚴🏻

gui update

上级 9405ad63
#!/usr/bin/env python
import wx
from programmer import Programmer
from settings import Settings
class TabOne(wx.Panel):
def __init__(self, parent):
super(TabOne, self).__init__(parent)
text = wx.TextCtrl(self, style=wx.TE_MULTILINE, size=(250, 150))
class TabTwo(wx.Panel):
def __init__(self, parent):
super(TabTwo, self).__init__(parent)
text = wx.TextCtrl(self, style=wx.TE_MULTILINE, size=(250, 150))
class NrfxTool(wx.Frame):
"""hold all widgets"""
def __init__(self, parent):
super(NrfxTool, self).__init__(parent)
self.settings = Settings()
self.SetTitle(self.settings.title)
self.init_ui()
def init_ui(self):
nb = wx.Notebook(self)
nb.AddPage(Programmer(nb), "Programmer")
nb.AddPage(TabTwo(nb), "DFU Image Generater")
self.SetSize(self.settings.size)
self.SetWindowStyle(wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
self.Centre()
self.Show(True)
def main():
app = wx.App()
frame = NrfxTool(None)
app.MainLoop()
if __name__ == "__main__":
main()
#!/usr/bin/env python
import wx
class Logcat:
def __init__(self) -> None:
pass
def clear(self):
pass
\ No newline at end of file
import wx
from settings import Settings
from log import Logcat
class Programmer(wx.Panel):
def __init__(self, parent):
super(Programmer, self).__init__(parent)
self.settings = Settings()
self.log = Logcat()
self.log.clear()
self._init_ui()
def _init_ui(self):
# 最底层水平布局vbox
self.vbox = wx.BoxSizer(wx.VERTICAL)
#------------------------------------------------
# 文件加载框部件布局
self.file_sbox = wx.StaticBox(self)
self.file_sbox_sizer = wx.StaticBoxSizer(self.file_sbox, wx.VERTICAL)
self.file_gbs = wx.GridBagSizer(4, 16)
# 子部件
# line 1
self.cb_0 = wx.CheckBox(self.file_sbox)
self.file_path_0 = wx.TextCtrl(self.file_sbox, style=wx.TE_READONLY)
self.file_load_0 = wx.Button(self.file_sbox, label="...")
# line 2
self.cb_1 = wx.CheckBox(self.file_sbox)
self.file_path_1 = wx.TextCtrl(self.file_sbox, style=wx.TE_READONLY)
self.file_load_1 = wx.Button(self.file_sbox, label="...")
# line 3
self.cb_2 = wx.CheckBox(self.file_sbox)
self.file_path_2 = wx.TextCtrl(self.file_sbox, style=wx.TE_READONLY)
self.file_load_2 = wx.Button(self.file_sbox, label="...")
# line 4
self.cb_3 = wx.CheckBox(self.file_sbox)
self.file_path_3 = wx.TextCtrl(self.file_sbox, style=wx.TE_READONLY)
self.file_load_3 = wx.Button(self.file_sbox, label="...")
self.file_gbs.Add(self.cb_0,
pos=(0, 0),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_path_0,
pos=(0, 1),
span=(1, 15),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_load_0,
pos=(0, 16),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.cb_1,
pos=(1, 0),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_path_1,
pos=(1, 1),
span=(1, 15),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_load_1,
pos=(1, 16),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.cb_2,
pos=(2, 0),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_path_2,
pos=(2, 1),
span=(1, 15),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_load_2,
pos=(2, 16),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.cb_3,
pos=(3, 0),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_path_3,
pos=(3, 1),
span=(1, 15),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_gbs.Add(self.file_load_3,
pos=(3, 16),
flag=wx.EXPAND | wx.ALL,
border=self.settings.programmer_file_item_border)
self.file_sbox_sizer.Add(self.file_gbs)
#------------------------------------------------
#------------------------------------------------
# 文件加载框部件布局
self.setting_sbox = wx.StaticBox(
self, size=self.settings.programmer_setting_size)
self.setting_sbox_sizer = wx.StaticBoxSizer(self.setting_sbox,
wx.VERTICAL)
self.setting_gbs = wx.GridBagSizer(6, 16)
# 子部件
self.erase_all_btn = wx.Button(
self.setting_sbox,
label='Erase all',
size=self.settings.programmer_setting_item_size)
self.erase_and_write_btn = wx.Button(
self.setting_sbox,
label="Erase and Write",
size=self.settings.programmer_setting_item_size)
self.write_btn = wx.Button(
self.setting_sbox,
label='Write',
size=self.settings.programmer_setting_item_size)
self.read_btn = wx.Button(
self.setting_sbox,
label='Read',
size=self.settings.programmer_setting_item_size)
self.reset_btn = wx.Button(
self.setting_sbox,
label='Reset',
size=self.settings.programmer_setting_item_size)
self.target_title = wx.StaticText(
self.setting_sbox,
label='Target: ',
style=wx.ALIGN_LEFT,
size=self.settings.programmer_setting_item_size)
self.target_cbo = wx.ComboBox(
self.setting_sbox,
style=wx.CB_READONLY,
size=self.settings.programmer_setting_item_size)
self.combine_btn = wx.Button(
self.setting_sbox,
label='MergeHex',
size=self.settings.programmer_setting_item_size)
self.setting_gbs.Add(
self.erase_all_btn,
pos=(0, 0),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.erase_and_write_btn,
pos=(1, 0),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.write_btn,
pos=(2, 0),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.read_btn,
pos=(3, 0),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.target_title,
pos=(0, 2),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.target_cbo,
pos=(1, 2),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.reset_btn,
pos=(2, 2),
border=self.settings.programmer_setting_item_border)
self.setting_gbs.Add(
self.combine_btn,
pos=(3, 2),
border=self.settings.programmer_setting_item_border)
self.setting_sbox_sizer.Add(self.setting_gbs)
#------------------------------------------------
self.vbox.Add(self.file_sbox_sizer)
self.vbox.Add(self.setting_sbox_sizer)
self.SetSizerAndFit(self.vbox)
print(self.GetSize())
class Settings:
def __init__(self) -> None:
self.version = '1.0.1'
self.author = 'Gavin'
self.title = 'nRF Toolbox v' + self.version + ' by ' + self.author
self.size = (530, 650)
# programmer page
self.programmer_file_item_border = 1
self.programmer_setting_size = (502, 137)
self.programmer_setting_item_size = (114, 25)
self.programmer_setting_item_border = 1
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册