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

add contrl UI

上级 4a7aa071
#!/usr/bin/env python
import wx
from wx.core import SEND_EVENT_POST, Panel
class NrfutilGui(wx.Frame):
def __init__(self, *args, **kw):
super(NrfutilGui, self).__init__(*args, **kw)
self.InitUI()
def InitUI(self):
panel = wx.Panel(self)
hbox = wx.BoxSizer(wx.HORIZONTAL)
vbox1 = wx.BoxSizer(wx.VERTICAL)
# Generating and displaying keys
step1_sbox = wx.StaticBox(panel, -1, "Generating and displaying keys")
step1_sbox_sizer = wx.StaticBoxSizer(step1_sbox, wx.HORIZONTAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
generate_btn = wx.Button(panel, label="Generate")
display_btn = wx.Button(panel, label="Display")
hbox1.Add(generate_btn, 0, wx.LEFT | wx.ALL, 2)
hbox1.Add(display_btn, 0, wx.LEFT | wx.ALL, 2)
step1_sbox_sizer.Add(hbox1, 0, wx.LEFT | wx.ALL, 2)
# Generating and displaying bootloader settings
step2_sbox = wx.StaticBox(
panel, -1, "Generating and displaying bootloader settings"
)
step2_sbox_sizer = wx.StaticBoxSizer(step2_sbox, wx.HORIZONTAL)
step2_gbs = wx.GridBagSizer(2, 2)
family_txt = wx.StaticText(panel, -1, "--family")
family_select = ["NRF51", "NRF52", "NRF52QFAB", "NRF52810", "NRF52840"]
family_cbo = wx.ComboBox(
panel, choices=family_select, value=family_select[1], style=wx.CB_READONLY
)
boot_version_txt = wx.StaticText(panel, -1, "--bootloader-version")
boot_version = wx.TextCtrl(panel, -1, value="1")
bl_settings_txt = wx.StaticText(panel, -1, label="--bl-settings-version")
bl_settings_sel = ["1 (=SDK 12.0)", "2 (>=SDK 15.3.0)"]
bl_settings_cbo = wx.ComboBox(
panel,
choices=bl_settings_sel,
value=bl_settings_sel[1],
style=wx.CB_READONLY,
)
app_version_txt = wx.StaticText(panel, -1, "--application-version")
app_version = wx.TextCtrl(panel, -1, value="10")
app_path_txt = wx.StaticText(panel, -1, "--application")
app_path_display = wx.TextCtrl(panel, style=wx.TE_READONLY)
app_path_btn = wx.Button(panel, label="Load")
apply2_btn = wx.Button(panel, label="Generate")
step2_gbs.Add(family_txt, pos=(0, 0), flag=wx.ALL)
step2_gbs.Add(family_cbo, pos=(0, 1), flag=wx.ALL)
step2_gbs.Add(boot_version_txt, pos=(1, 0), flag=wx.ALL)
step2_gbs.Add(boot_version, pos=(1, 1), flag=wx.ALL)
step2_gbs.Add(bl_settings_txt, pos=(2, 0), flag=wx.ALL)
step2_gbs.Add(bl_settings_cbo, pos=(2, 1), flag=wx.ALL)
step2_gbs.Add(app_version_txt, pos=(3, 0), flag=wx.ALL)
step2_gbs.Add(app_version, pos=(3, 1), flag=wx.ALL)
step2_gbs.Add(app_path_txt, pos=(4, 0), flag=wx.ALL)
step2_gbs.Add(app_path_display, pos=(4, 1), flag=wx.ALL)
step2_gbs.Add(app_path_btn, pos=(4, 2), flag=wx.ALL)
step2_gbs.Add(apply2_btn, pos=(5, 2), flag=wx.ALL)
step2_sbox_sizer.Add(step2_gbs, 0, wx.ALL | wx.LEFT, 2)
# Merging files into a single file
step3_sbox = wx.StaticBox(panel, -1, "Merging files into a single file")
step3_sbox_sizer = wx.StaticBoxSizer(step3_sbox, wx.HORIZONTAL)
step3_gbs = wx.GridBagSizer(2, 2)
sd_txt = wx.StaticText(panel, -1, "softdevice")
sd_path_txt = wx.TextCtrl(panel, style=wx.TE_READONLY)
sd_load_btn = wx.Button(panel, label="Load")
bl_txt = wx.StaticText(panel, -1, "bootloader")
bl_path_txt = wx.TextCtrl(panel, style=wx.TE_READONLY)
bl_load_btn = wx.Button(panel, label="Load")
app_txt = wx.StaticText(panel, -1, "application")
app_path_txt = wx.TextCtrl(panel, style=wx.TE_READONLY)
app_load_btn = wx.Button(panel, label="Load")
settings_txt = wx.StaticText(panel, -1, "settings")
settings_path_txt = wx.TextCtrl(panel, style=wx.TE_READONLY)
settings_load_btn = wx.Button(panel, label="Load")
apply3_btn = wx.Button(panel, label="Generate")
step3_gbs.Add(sd_txt, pos=(0, 0), flag=wx.ALL)
step3_gbs.Add(sd_path_txt, pos=(0, 1), flag=wx.ALL)
step3_gbs.Add(sd_load_btn, pos=(0, 2), flag=wx.ALL)
step3_gbs.Add(bl_txt, pos=(1, 0), flag=wx.ALL)
step3_gbs.Add(bl_path_txt, pos=(1, 1), flag=wx.ALL)
step3_gbs.Add(bl_load_btn, pos=(1, 2), flag=wx.ALL)
step3_gbs.Add(app_txt, pos=(2, 0), flag=wx.ALL)
step3_gbs.Add(app_path_txt, pos=(2, 1), flag=wx.ALL)
step3_gbs.Add(app_load_btn, pos=(2, 2), flag=wx.ALL)
step3_gbs.Add(settings_txt, pos=(3, 0), flag=wx.ALL)
step3_gbs.Add(settings_path_txt, pos=(3, 1), flag=wx.ALL)
step3_gbs.Add(settings_load_btn, pos=(3, 2), flag=wx.ALL)
step3_gbs.Add(apply3_btn, pos=(4, 2), flag=wx.ALL)
step3_sbox_sizer.Add(step3_gbs, 0, wx.ALL | wx.LEFT, 2)
# Generating DFU packages
step4_sbox = wx.StaticBox(panel, -1, "Generating DFU packages")
step4_sbox_sizer = wx.StaticBoxSizer(step4_sbox, wx.HORIZONTAL)
step4_gbs = wx.GridBagSizer(2, 2)
hw_version_txt = wx.StaticText(panel, -1, "--hw-version")
hw_version_select = ["52"]
hw_version = wx.ComboBox(
panel,
choices=hw_version_select,
value=hw_version_select[0],
style=wx.CB_READONLY,
)
sd_seq_txt = wx.StaticText(panel, -1, "--sd-req")
sd_seq_sel = ["0x101 (s132_nrf52_7.2.0)", "0xCB (s132_nrf52_7.0.1)"]
sd_seq_cb = wx.ComboBox(
panel, choices=sd_seq_sel, value=sd_seq_sel[0], style=wx.CB_READONLY
)
application_version_txt = wx.StaticText(panel, -1, "--application-version")
application_version = wx.TextCtrl(panel, value="1")
app_file_txt = wx.StaticText(panel, -1, "--application")
app_file_path = wx.TextCtrl(panel, style=wx.TE_READONLY)
app_file_load_btn = wx.Button(panel, label="Load")
key_file_txt = wx.StaticText(panel, -1, "--key-file")
key_file_path = wx.TextCtrl(panel, style=wx.TE_READONLY)
key_file_load_btn = wx.Button(panel, label="Load")
step4_gbs.Add(hw_version_txt, pos=(0, 0), flag=wx.ALL)
step4_gbs.Add(hw_version, pos=(0, 1), flag=wx.ALL)
step4_gbs.Add(sd_seq_txt, pos=(1, 0), flag=wx.ALL)
step4_gbs.Add(sd_seq_cb, pos=(1, 1), flag=wx.ALL)
step4_gbs.Add(application_version_txt, pos=(2, 0), flag=wx.ALL)
step4_gbs.Add(application_version, pos=(2, 1), flag=wx.ALL)
step4_gbs.Add(app_file_txt, pos=(3, 0), flag=wx.ALL)
step4_gbs.Add(app_file_path, pos=(3, 1), flag=wx.ALL)
step4_gbs.Add(app_file_load_btn, pos=(3, 2), flag=wx.ALL)
step4_gbs.Add(key_file_txt, pos=(4, 0), flag=wx.ALL)
step4_gbs.Add(key_file_path, pos=(4, 1), flag=wx.ALL)
step4_gbs.Add(key_file_load_btn, pos=(4, 2), flag=wx.ALL)
step4_sbox_sizer.Add(step4_gbs, 0, wx.ALL | wx.LEFT, 2)
vbox1.Add(step1_sbox_sizer, 0, wx.ALL | wx.ALIGN_LEFT, 2)
vbox1.Add(step2_sbox_sizer, 0, wx.ALL | wx.ALIGN_LEFT, 2)
vbox1.Add(step3_sbox_sizer, 0, wx.ALL | wx.ALIGN_LEFT, 2)
vbox1.Add(step4_sbox_sizer, 0, wx.ALL | wx.ALIGN_LEFT, 2)
## right panel
vbox2 = wx.BoxSizer(wx.VERTICAL)
right_box = wx.StaticBox(panel, -1, "Logging")
right_boxsizer = wx.StaticBoxSizer(right_box, wx.VERTICAL)
log_ctrl = wx.TextCtrl(
right_box,
size=(400, 600),
style=wx.TC_MULTILINE | wx.TE_READONLY | wx.VSCROLL | wx.TE_RICH2,
)
# log_ctrl.SetForegroundColour(wx.WHITE)
# log_ctrl.SetBackgroundColour(wx.BLACK)
log_ctrl.SetBackgroundColour(wx.WHITE)
log_ctrl.SetValue("hello00000000000000000000000000000000000000000000000")
right_boxsizer.Add(log_ctrl, proportion=1, flag=wx.EXPAND | wx.ALL)
vbox2.Add(right_boxsizer)
hbox.Add(vbox1)
hbox.Add(vbox2)
panel.SetSizer(hbox)
# display
self.SetSize(800, 650)
self.SetTitle("Nrfutil Tool")
self.Centre()
self.Show(True)
def main():
app = wx.App()
ng = NrfutilGui(None, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
app.MainLoop()
if __name__ == "__main__":
main()
文件已添加
文件已添加
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册