def create_frm_right(self): ''' 上半部分右边窗口: 分为4个部分: 1、Label显示和重置按钮和发送按钮 2、Text显示(发送的数据) 3、Label显示和十进制选择显示和清除接收信息按钮 4、Text显示接收到的信息 ''' self.frm_right_reset = pytk.PyLabelFrame(self.frm_right) self.frm_right_send = pytk.PyText(self.frm_right, font=g_font, width=60, height=5) self.frm_right_clear = pytk.PyLabelFrame(self.frm_right) self.frm_right_receive = pytk.PyText(self.frm_right, font=g_font, width=60, height=8) self.frm_right_reset.pack(fill="both", expand=0, padx=1) self.frm_right_send.pack(fill="both", expand=1, padx=1) self.frm_right_clear.pack(fill="both", expand=0, padx=1) self.frm_right_receive.pack(fill="both", expand=1, padx=1) self.frm_right_receive.tag_config("green", foreground="#228B22") self.create_frm_right_reset() self.create_frm_right_clear()
def create_frm_mid_rbs(self): self.frm_up_rblabel = pytk.PyLabel(self.frm_mid, text="Output Name:", font=('Monaco', 12)) self.frm_up_rblabel.grid(row=3, column=0, padx=5, pady=5, sticky="wesn") self.savenames = ['stand', 'sit ', 'walk ', 'run ', 'test '] self.frm_up_rbs = [] self.frm_up_radio_intvar = tk.IntVar() for i in range(len(self.savenames)): self.frm_up_rbs.append( pytk.PyRadiobutton(self.frm_mid, text=self.savenames[i], variable=self.frm_up_radio_intvar, value=i, font=("Monaco", 12), command=self.ChangeSaveName())) for index, rbs in enumerate(self.frm_up_rbs): rbs.grid(row=index // 2 + 5, column=index % 2, padx=0, pady=0, sticky="w") self.frm_up_radio_intvar.set(0)
def create_frm_right_send(self): ''' 2、Entry显示(发送的数据)用64个Entry来显示 ''' self.entry_list = list() line_frm_1 = pytk.PyFrame(self.frm_right_send) line_frm_2 = pytk.PyFrame(self.frm_right_send) line_frm_3 = pytk.PyFrame(self.frm_right_send) line_frm_4 = pytk.PyFrame(self.frm_right_send) line_frm_1.pack(fill="both", expand=1, pady=1) line_frm_2.pack(fill="both", expand=1, pady=1) line_frm_3.pack(fill="both", expand=1, pady=1) line_frm_4.pack(fill="both", expand=1, pady=1) for i in range(64): temp_str = tk.StringVar() if i // 16 == 0: master = line_frm_1 elif i // 16 == 1: master = line_frm_2 elif i // 16 == 2: master = line_frm_3 elif i // 16 == 3: master = line_frm_4 temp_entry = pytk.PyEntry(master, textvariable=temp_str, width=3, fg="#1E90FF", font=g_font) temp_str.set("00") temp_entry.pack(fill="both", expand=1, padx=1, side=tk.LEFT) self.entry_list.append(temp_str)
def create_frm_right(self): ''' 上半部分右边窗口: 分为4个部分: 1、Label显示和重置按钮和发送按钮 2、Text显示(发送的数据) 3、Label显示和十六进制选择显示和清除接收信息按钮 4、Text显示接收到的信息 ''' self.frm_right_reset = pytk.PyLabelFrame(self.frm_right) self.frm_right_send = pytk.PyText(self.frm_right, width=50, height=size_dict["send_text_height"], font=("Monaco", 9)) self.frm_right_clear = pytk.PyLabelFrame(self.frm_right) self.frm_right_receive = pytk.PyText( self.frm_right, width=50, height=size_dict["receive_text_height"], font=("Monaco", 9)) self.frm_right_reset.grid(row=0, column=0, padx=1, sticky="wesn") self.frm_right_send.grid(row=1, column=0, padx=1, sticky="wesn") self.frm_right_clear.grid(row=2, column=0, padx=1, sticky="wesn") self.frm_right_receive.grid(row=3, column=0, padx=1, sticky="wesn") self.frm_right_receive.tag_config("green", foreground="#228B22") self.create_frm_right_reset() self.create_frm_right_clear()
def create_frm_left(self): ''' 上半部分左边窗口: Listbox显示可用的COM口 Button按钮点击连接设备 ''' self.frm_left_label = pytk.PyLabel(self.frm_left, text="Serial Ports", font=font) self.frm_left_listbox = pytk.PyListbox( self.frm_left, height=size_dict["list_box_height"], font=font) self.frm_left_serial_set = pytk.PyLabelFrame(self.frm_left) self.frm_left_btn = pytk.PyButton(self.frm_left, text="Open", font=font, command=self.Toggle) self.frm_left_label.grid(row=0, column=0, padx=5, pady=5, sticky="w") self.frm_left_listbox.grid(row=1, column=0, padx=5, pady=5, sticky="wesn") self.frm_left_serial_set.grid(row=2, column=0, padx=5, pady=5, sticky="wesn") self.frm_left_btn.grid(row=3, column=0, padx=5, pady=5, sticky="wesn") self.frm_left_listbox.bind("<Double-Button-1>", self.Open) self.create_frm_left_serial_set()
def create_frm_right_reset(self): ''' 1、Label显示和重置按钮和发送按钮 ''' self.frm_right_reset_label = pytk.PyLabel(self.frm_right_reset, text="Hex Bytes", font=g_font, anchor="w") self.frm_right_reset_btn = pytk.PyButton(self.frm_right_reset, text="Reset", width=10, font=g_font, command=self.Reset) self.frm_right_send_btn = pytk.PyButton(self.frm_right_reset, text="Send", width=10, font=g_font, command=self.Send) self.frm_right_reset_label.pack(fill="both", expand=1, padx=5, pady=5, side=tk.LEFT) self.frm_right_reset_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_send_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.RIGHT)
def create_frm_right_clear(self): ''' 3、Label显示和十六进制显示和清除接收信息按钮 ''' self.receive_hex_cbtn_var = tk.IntVar() self.frm_right_clear_label = pytk.PyLabel( self.frm_right_clear, text="Data Received" + " " * size_dict["clear_label_width"], font=font) self.frm_right_threshold_label = pytk.PyLabel(self.frm_right_clear, text="Threshold:", font=font) self.thresholdStr = tk.StringVar() self.frm_right_threshold_entry = pytk.PyEntry( self.frm_right_clear, textvariable=self.thresholdStr, width=6, font=font) self.frm_right_hex_checkbtn = pytk.PyCheckbutton( self.frm_right_clear, text="Hex", variable=self.receive_hex_cbtn_var, relief="flat", font=font) self.frm_right_clear_btn = pytk.PyButton(self.frm_right_clear, text="Clear", width=10, font=font, command=self.Clear) self.frm_right_clear_label.grid(row=0, column=0, padx=5, pady=5, sticky="w") self.frm_right_threshold_label.grid(row=0, column=1, padx=5, pady=5, sticky="wesn") self.frm_right_threshold_entry.grid(row=0, column=2, padx=5, pady=5, sticky="wesn") self.frm_right_hex_checkbtn.grid(row=0, column=3, padx=5, pady=5, sticky="wesn") self.frm_right_clear_btn.grid(row=0, column=4, padx=5, pady=5, sticky="wesn") self.thresholdStr.set(1) self.thresholdStr.trace('w', self.GetThresholdValue)
def create_frm_right_clear(self): ''' 3、Label显示和清除接收信息按钮 ''' self.checkValue = tk.IntVar() self.frm_right_clear_label = pytk.PyLabel(self.frm_right_clear, text="Data Received", anchor="w", font=g_font) self.frm_right_threshold_label = pytk.PyLabel(self.frm_right_clear, text="Threshold:", font=g_font) self.threshold_str = tk.StringVar() self.frm_right_threshold_entry = pytk.PyEntry( self.frm_right_clear, textvariable=self.threshold_str, width=6, font=g_font) self.receive_hex_cbtn_var = tk.IntVar() self.frm_right_hex_checkbtn = pytk.PyCheckbutton( self.frm_right_clear, text="Hex", variable=self.receive_hex_cbtn_var, relief="flat", font=g_font) self.frm_right_clear_btn = pytk.PyButton(self.frm_right_clear, text="Clear", width=10, font=g_font) self.frm_right_clear_label.pack(fill="both", expand=1, padx=5, pady=5, side=tk.LEFT) self.frm_right_threshold_label.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_threshold_entry.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_hex_checkbtn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_clear_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.RIGHT)
def create_frm_right_reset(self): ''' 1、Label显示和重置按钮和发送按钮 ''' self.frm_right_reset_label = pytk.PyLabel(self.frm_right_reset, text="Hex Bytes", font=g_font, anchor="w") self.frm_right_reset_btn = pytk.PyButton(self.frm_right_reset, text="Reset", width=10, font=g_font, command=self.Reset) self.frm_right_send_btn = pytk.PyButton(self.frm_right_reset, text="Send", width=10, font=g_font, command=self.Send) self.new_line_cbtn_var = tk.IntVar() self.send_hex_cbtn_var = tk.IntVar() self.frm_right_reset_newLine_checkbtn = pytk.PyCheckbutton( self.frm_right_reset, text="New Line", variable=self.new_line_cbtn_var, font=g_font) self.frm_right_reset_hex_checkbtn = pytk.PyCheckbutton( self.frm_right_reset, text="Hex", variable=self.send_hex_cbtn_var, font=g_font) self.frm_right_reset_label.pack(fill="both", expand=1, padx=5, pady=5, side=tk.LEFT) self.frm_right_reset_newLine_checkbtn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_reset_hex_checkbtn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_reset_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_send_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.RIGHT)
def create_frm_down(self): self.create_frm_down_entry() self.frm_down_btn1 = pytk.PyButton(self.frm_down,text="Record",\ font=font,command=self.Record) self.frm_down_btn1.pack(expand="yes", fill="both", padx=5, pady=5) # 单次记录的按钮 self.frm_down_btn2 = pytk.PyButton(self.frm_down,text="One Time",\ font=font,command=self.RecordOnce) self.frm_down_btn2.pack(expand="yes", fill="both", padx=5, pady=5)
def create_frame(self): ''' 新建窗口,分为上下2个部分,下半部分为状态栏 ''' self.frm = pytk.PyLabelFrame(self.root) self.frm_status = pytk.PyLabelFrame(self.root) self.frm.grid(row=0, column=0, sticky="wesn") self.frm_status.grid(row=1, column=0, sticky="wesn") self.create_frm() self.create_frm_status()
def create_frm(self): ''' 上半部分窗口分为左右2个部分 ''' self.frm_left = pytk.PyLabelFrame(self.frm) self.frm_right = pytk.PyLabelFrame(self.frm) self.frm_left.grid(row=0, column=0, padx=5, pady=5, sticky="wesn") self.frm_right.grid(row=0, column=1, padx=5, pady=5, sticky="wesn") self.create_frm_left() self.create_frm_right()
def create_frame(self): ''' 新建窗口,分为上下2个部分,下半部分为状态栏 ''' self.frm = pytk.PyLabelFrame(self.root) self.frm_status = pytk.PyLabelFrame(self.root) self.frm.pack(fill="both", expand=1) self.frm_status.pack(fill="both", expand=0) self.create_frm() self.create_frm_status()
def create_frm_down_entry(self): self.frm_down_entrylabel = pytk.PyLabel(self.frm_down, text="One time(ms)", font=('Monaco', 12)) self.frm_down_entrylabel.pack(expand="yes", fill="both", padx=5, pady=5) default_val = tk.StringVar() default_val.set("5000") self.frm_down_entry = pytk.PyEntry(self.frm_down, textvariable=default_val) self.frm_down_entry.pack(expand="yes", fill="both", padx=5, pady=5)
def create_frame(self): ''' 创建窗体,分为上下2个部分,下半部分为状态栏 ''' self.frm = pytk.PyFrame(self.root) self.frm_top = pytk.PyLabelFrame(self.frm) self.frm_status = pytk.PyLabelFrame(self.frm) self.frm_top.pack(fill="both", expand=1) self.frm_status.pack(fill="both", expand=0) self.create_frm_top() self.create_frm_status()
def create_frm_up(self): self.frm_up_label = pytk.PyLabel(self.frm_up,\ text=" Serial Ports ",\ font=font) self.frm_up_label.grid(row=0, column=0, padx=5, pady=5, sticky="wesn") self.frm_up_setport = pytk.PyLabelFrame(self.frm_up) self.frm_up_setport.grid(row=1, column=0, padx=5, pady=5, sticky="wesn") self.frm_up_btn = pytk.PyButton(self.frm_up,text="Open",font=font,\ command=self.Open) self.frm_up_btn.grid(row=2, column=0, padx=5, pady=5, sticky="wesn") self.create_frm_up_setport()
def create_frame(self): self.tabcontrol = ttk.Notebook(self.root) self.tabcontrol.pack(fill="both", expand=1) self.eeg_tab = pytk.PyFrame(self.tabcontrol) #脑电 self.ecg_tab = pytk.PyFrame(self.tabcontrol) #心电 self.gsr_tab = pytk.PyFrame(self.tabcontrol) #皮肤电 self.tabcontrol.add(self.eeg_tab, text="脑电信号可视化") self.tabcontrol.add(self.ecg_tab, text="心电信号可视化") self.tabcontrol.add(self.gsr_tab, text="皮肤电信号可视化") self.tabcontrol.select(self.eeg_tab) #将每种数据的tab页分成左右两个部分,左边是设置及状态 #右边是对应数据波形 self.creat_eeg_frame() self.creat_ecg_frame() self.creat_gsr_frame()
def create_frm(self): ''' 上半部分窗口分为左右2个部分 ''' self.frm_left = pytk.PyLabelFrame(self.frm) self.frm_right = pytk.PyLabelFrame(self.frm) self.frm_left.pack(fill="both", expand=1, padx=5, pady=5, side=tk.LEFT) self.frm_right.pack(fill="both", expand=1, padx=5, pady=5, side=tk.RIGHT) self.create_frm_left() self.create_frm_right()
def create_frame(self): self.frm_main = pytk.PyLabelFrame(self.root) self.frm_main.pack(fill="both", expand=1) self.create_frm_main() self.init_serial_frm()
def create_frm_left_serial_set(self): ''' 串口配置,比如波特率,奇偶校验等 ''' setting_label_list = [ "BaudRate :", "Parity :", "DataBit :", "StopBit :" ] baudrate_list = [ "1200", "2400", "4800", "9600", "14400", "19200", "38400", "43000", "57600", "76800", "115200", "12800" ] # PARITY_NONE, PARITY_EVEN, PARITY_ODD PARITY_MARK, PARITY_SPACE parity_list = ["N", "E", "O", "M", "S"] bytesize_list = ["5", "6", "7", "8"] stopbits_list = ["1", "1.5", "2"] for index, item in enumerate(setting_label_list): frm_left_label_temp = pytk.PyLabel(self.frm_left_serial_set, text=item, font=('Monaco', 10)) frm_left_label_temp.grid(row=index, column=0, padx=1, pady=2, sticky="e") self.frm_left_combobox_baudrate = ttk.Combobox( self.frm_left_serial_set, width=15, values=baudrate_list) self.frm_left_combobox_parity = ttk.Combobox(self.frm_left_serial_set, width=15, values=parity_list) self.frm_left_combobox_databit = ttk.Combobox(self.frm_left_serial_set, width=15, values=bytesize_list) self.frm_left_combobox_stopbit = ttk.Combobox(self.frm_left_serial_set, width=15, values=stopbits_list) self.frm_left_combobox_baudrate.grid(row=0, column=1, padx=2, pady=2, sticky="e") self.frm_left_combobox_parity.grid(row=1, column=1, padx=2, pady=2, sticky="e") self.frm_left_combobox_databit.grid(row=2, column=1, padx=2, pady=2, sticky="e") self.frm_left_combobox_stopbit.grid(row=3, column=1, padx=2, pady=2, sticky="e") self.frm_left_combobox_baudrate.current(3) self.frm_left_combobox_parity.current(0) self.frm_left_combobox_databit.current(3) self.frm_left_combobox_stopbit.current(0)
def create_frm(self): ''' 上半部分窗口分为上下2个部分 ''' self.frm_up = pytk.PyLabelFrame(self.frm) self.frm_mid = pytk.PyLabelFrame(self.frm) self.frm_down = pytk.PyLabelFrame(self.frm) self.frm_up.pack(side="top", fill="both", padx=5, pady=5) self.frm_mid.pack(expand="yes", fill="both", padx=5, pady=5) self.frm_down.pack(expand="yes", fill="both", padx=5, pady=5) #self.frm_up.grid(row=0, column=0, padx=5, pady=5, sticky="wesn") #self.frm_down.grid(row=1, column=0, padx=5, pady=5, sticky="wesn") self.create_frm_up() self.create_frm_mid() self.create_frm_down()
def create_frm_right_reset(self): ''' 1、Label显示和重置按钮和发送按钮 ''' self.frm_right_reset_label = pytk.PyLabel( self.frm_right_reset, text="Data Send" + " " * size_dict["reset_label_width"], font=font) self.new_line_cbtn_var = tk.IntVar() self.send_hex_cbtn_var = tk.IntVar() self.frm_right_reset_newLine_checkbtn = pytk.PyCheckbutton( self.frm_right_reset, text="New Line", variable=self.new_line_cbtn_var, font=font) self.frm_right_reset_hex_checkbtn = pytk.PyCheckbutton( self.frm_right_reset, text="Hex", variable=self.send_hex_cbtn_var, font=font) self.frm_right_reset_btn = pytk.PyButton(self.frm_right_reset, text="Reset", width=10, font=font, command=self.Reset) self.frm_right_send_btn = pytk.PyButton(self.frm_right_reset, text="Send", width=10, font=font, command=self.Send) self.frm_right_reset_label.grid(row=0, column=0, sticky="w") self.frm_right_reset_newLine_checkbtn.grid(row=0, column=1, sticky="wesn") self.frm_right_reset_hex_checkbtn.grid(row=0, column=2, sticky="wesn") self.frm_right_reset_btn.grid(row=0, column=3, padx=5, pady=5, sticky="wesn") self.frm_right_send_btn.grid(row=0, column=4, padx=5, pady=5, sticky="wesn")
def creat_gsr_frame_left_under(self): self.gsr_status_label = pytk.PyLabel(self.gsr_frame_left_under, text="Ready", font=g_font, wraplength=240, justify='left') self.gsr_status_label.grid(row=0, column=0, padx=5, pady=5, sticky="wesn")
def create_frm_status(self): ''' 下半部分状态栏窗口 ''' self.frm_status_label = pytk.PyLabel(self.frm_status, text="Ready", font=g_font) self.frm_status_label.grid(row=0, column=0, padx=5, pady=5, sticky="wesn")
def create_frm_left(self): ''' 上半部分左边窗口: Listbox显示连接的USB设备 Button按钮点击连接设备 ''' self.frm_left_label = pytk.PyLabel(self.frm_left, text="HID Devices", font=g_font, anchor="w") self.frm_left_listbox = pytk.PyListbox(self.frm_left, font=g_font) self.frm_left_btn = pytk.PyButton(self.frm_left, text="Open", font=g_font, command=self.Toggle) self.frm_left_label.pack(fill="both", expand=0, padx=5, pady=5) self.frm_left_listbox.pack(fill="both", expand=1, padx=5, pady=5) self.frm_left_btn.pack(fill="both", expand=0, padx=5, pady=5) self.frm_left_listbox.bind("<Double-Button-1>", self.Open)
def create_frm_setting(self): self.setting_width_label = pytk.PyLabel(self.frm_setting, font=g_font, text="宽度:") self.setting_width_label.grid(column=0, row=0, padx=5, pady=5) self.setting_width_label = pytk.PyLabel(self.frm_setting, font=g_font, width=5, text="880") self.setting_width_label.grid(column=1, row=0, padx=5, pady=5) self.setting_height_label = pytk.PyLabel(self.frm_setting, font=g_font, text="高度:") self.setting_height_label.grid(column=0, row=1, padx=5, pady=5) self.setting_height_entry = pytk.PyEntry(self.frm_setting, font=g_font, width=5) self.setting_height_entry.grid(column=1, row=1, padx=5, pady=5) self.setting_height_entry.insert(0, '1000') pass
def creat_eeg_frame(self): """脑电tab""" self.eeg_frame_left = pytk.PyLabelFrame(self.eeg_tab) #左部分 self.eeg_frame_right = pytk.PyLabelFrame(self.eeg_tab) #右部分 self.eeg_frame_left.pack(fill="both", expand=0, padx=2, pady=5, side=tk.LEFT) self.eeg_frame_right.pack(fill="both", expand=1, padx=2, pady=5, side=tk.RIGHT) #左部分分成上下两个部分 self.eeg_frame_left_top = pytk.PyLabelFrame(self.eeg_frame_left) self.eeg_frame_left_under = pytk.PyLabelFrame(self.eeg_frame_left) self.eeg_frame_left_top.pack(fill="both", expand=0) self.eeg_frame_left_under.pack(fill="both", expand=1) self.creat_eeg_frame_left_top() self.creat_eeg_frame_left_under() self.creat_eeg_frame_right() #创建脑波Tab右边
def create_frm_file(self): self.import_files_entry = pytk.PyEntry(self.frm_file, font=g_font) self.import_files_entry.grid(column=0, row=0, padx=5, pady=5) self.import_files_btn = pytk.PyButton(self.frm_file, font=g_font, text='导入文件', command=self.import_files) self.import_files_btn.grid(column=1, row=0, padx=5, pady=5) self.export_files_entry = pytk.PyEntry(self.frm_file, font=g_font) self.export_files_entry.grid(column=0, row=1, padx=5, pady=5) self.export_files_entry.insert(0, './image') self.export_files_btn = pytk.PyButton(self.frm_file, font=g_font, text='导出目录', command=self.export_files) self.export_files_btn.grid(column=1, row=1, sticky=tk.N, padx=5, pady=5) pass
def create_frm_right_clear(self): ''' 3、Label显示和清除接收信息按钮 ''' self.checkValue = tk.IntVar() self.frm_right_clear_label = pytk.PyLabel(self.frm_right_clear, text="Data Received", anchor="w", font=g_font) self.frm_right_decimal_checkbtn = pytk.PyCheckbutton( self.frm_right_clear, text="Decimal", variable=self.checkValue, relief="flat", font=g_font) self.frm_right_clear_btn = pytk.PyButton(self.frm_right_clear, text="Clear", width=10, font=g_font, command=self.Clear) self.frm_right_clear_label.pack(fill="both", expand=1, padx=5, pady=5, side=tk.LEFT) self.frm_right_decimal_checkbtn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.LEFT) self.frm_right_clear_btn.pack(fill="both", expand=0, padx=5, pady=5, side=tk.RIGHT)
def creat_gsr_frame(self): """皮肤电tab""" self.gsr_frame_left = pytk.PyLabelFrame(self.gsr_tab) self.gsr_frame_right = pytk.PyLabelFrame(self.gsr_tab, text="GSR Singal", font=g_font) self.gsr_frame_left.pack(fill="both", expand=0, padx=2, pady=5, side=tk.LEFT) self.gsr_frame_right.pack(fill="both", expand=1, padx=2, pady=5, side=tk.RIGHT) #左部分分成上下两个部分 self.gsr_frame_left_top = pytk.PyLabelFrame(self.gsr_frame_left) self.gsr_frame_left_under = pytk.PyLabelFrame(self.gsr_frame_left) self.gsr_frame_left_top.pack(fill="both", expand=0) self.gsr_frame_left_under.pack(fill="both", expand=1) self.creat_gsr_frame_left_top() self.creat_gsr_frame_left_under() self.creat_gsr_frame_right()