def fiberstatus_ui(self): self.value_fiberstatus_response.__init__() self.sub_fiberstatus = Dialog(self.top, 560, 180, title='光模块状态查询') parameter = tix.LabelEntry(self.sub_fiberstatus.canvas) parameter.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = '光模块数' parameter.subwidget_list['entry']['textvariable'] = self.value_fiberstatus_channel[0] parameter.subwidget_list['entry']['justify'] = 'center' self.sub_fiberstatus.canvas.create_line(0, 25, 620, 25, fill='#C4C4C4', width=1) parameter = tix.LabelEntry(self.sub_fiberstatus.canvas) parameter.grid(column=0, row=1, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = '结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_fiberstatus_response parameter.subwidget_list['entry']['justify'] = 'center' column_name =['光口号', '接收功率', '发射功率', '在位信息', '厂商', '传输速率', '温度', '电压', '电流'] self.sub_fiberstatus.table = ttk.Treeview(self.sub_fiberstatus.canvas, column=[1, 2, 3, 4, 5, 6, 7, 8, 9], height=2, show='headings') for i in range(9): self.sub_fiberstatus.table.column(column='#%d' % (i+1), width=60, minwidth=60, anchor='center') self.sub_fiberstatus.table.heading(column='#%d' % (i+1), text=column_name[i]) self.sub_fiberstatus.table.grid(column=0, row=2, padx=5, pady=5) for i in range(2): self.sub_fiberstatus.table.insert('', 'end', value=(['%s' % (i+1), ] + ['-', ]*8), iid=i+1) self.sub_fiberstatus.button_test['command'] = \ lambda: protocal.protocol_test(0xA007, value_list=self.value_fiberstatus_channel)
def mask_config_ui(self): self.value_mask_config_result.__init__() self.value_mask_config_response.__init__() self.sub_mask_config = Dialog(self.top, 220, 105, title='天线掩码配置') parameter1 = tix.LabelEntry(self.sub_mask_config.canvas) parameter1.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter1.subwidget_list['label']['text'] = '下行掩码' parameter1.subwidget_list['entry']['textvariable'] = self.value_mask_config[0] parameter2 = tix.LabelEntry(self.sub_mask_config.canvas) parameter2.grid(column=1, row=0, padx=5, pady=5, stick='w') parameter2.subwidget_list['label']['text'] = '上行掩码' parameter2.subwidget_list['entry']['textvariable'] = self.value_mask_config[1] self.sub_mask_config.canvas.create_line(0, 26, 220, 26, fill='#C4C4C4', width=1) parameter3 = tix.LabelEntry(self.sub_mask_config.canvas) parameter3.grid(column=0, row=1, padx=5, pady=5, stick='e') parameter3.subwidget_list['label']['text'] = 'Result' parameter3.subwidget_list['entry']['textvariable'] = self.value_mask_config_result parameter4 = tix.LabelEntry(self.sub_mask_config.canvas) parameter4.grid(column=1, row=1, padx=5, pady=5, stick='w') parameter4.subwidget_list['label']['text'] = '结果返回' parameter4.subwidget_list['entry']['textvariable'] = self.value_mask_config_response self.sub_mask_config.button_test['command'] = \ lambda: protocal.protocol_test(0xA004, value_list=self.value_mask_config)
def rrustatus_ui(self): self.value_rrustatus_response.__init__() self.sub_rrustatus = Dialog(self.top, 550, 160, title='RRU状态查询') for num in range(9): value = StringVar() self.value_rrustatus_para[num] = value parameter = tix.LabelEntry(self.sub_rrustatus.canvas) parameter.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = '结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_rrustatus_response parameter.subwidget_list['entry']['justify'] = 'center' para = ['本振频率', '本振状态', '时钟状态', ' IR接口', '运行状态', '主板温度', '从板温度', '运行时间', '系统时间'] setup_msg_count = self.testList(2, 4) for num in setup_msg_count: index = setup_msg_count.index(num) parameter = tix.LabelEntry(self.sub_rrustatus.canvas) parameter.grid(column=num[1], row=(num[0]+1), padx=5, pady=5) parameter.subwidget_list['label']['text'] = para[index] parameter.subwidget_list['entry']['textvariable'] = self.value_rrustatus_para[index] parameter.subwidget_list['entry']['width'] = 12 parameter.subwidget_list['entry']['justify'] = 'center' parameter = tix.LabelEntry(self.sub_rrustatus.canvas) parameter.grid(columnspan=2, column=0, row=3, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = para[-1] parameter.subwidget_list['entry']['textvariable'] = self.value_rrustatus_para[-1] parameter.subwidget_list['entry']['width'] = 20 parameter.subwidget_list['entry']['justify'] = 'center' self.sub_rrustatus.button_test['command'] = lambda: protocal.protocol_test(0xA006)
def rfstatus_ui(self): self.value_rfstatus_result.__init__() self.sub_rfstatus = Dialog(self.top, 620, 300, title='射频状态查询', daltx=5) parameter = tix.LabelEntry(self.sub_rfstatus.canvas) parameter.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = '射频通道数' parameter.subwidget_list['entry']['textvariable'] = self.value_rfstatus_channel[0] parameter.subwidget_list['entry']['justify'] = 'center' self.sub_rfstatus.canvas.create_line(0, 25, 620, 25, fill='#C4C4C4', width=1) parameter = tix.LabelEntry(self.sub_rfstatus.canvas) parameter.grid(column=0, row=1, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = ' 结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_rfstatus_result parameter.subwidget_list['entry']['justify'] = 'center' column_name =['通道号', '通道温度', '发射功率', '发射增益', '接收功率', '接收增益', '驻波比', '下行结果', '上行结果', '驻波结果'] self.sub_rfstatus.table = ttk.Treeview(self.sub_rfstatus.canvas, column=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], height=8, show='headings') for i in range(10): if (i == 0) or (i == 6): self.sub_rfstatus.table.column(column='#%d' % (i+1), width=50, minwidth=50, anchor='center') elif (i == 2) or (i == 4): self.sub_rfstatus.table.column(column='#%d' % (i+1), width=70, minwidth=70, anchor='center') else: self.sub_rfstatus.table.column(column='#%d' % (i+1), width=60, minwidth=60, anchor='center') self.sub_rfstatus.table.heading(column='#%d' % (i+1), text=column_name[i]) self.sub_rfstatus.table.grid(column=0, row=2, padx=5, pady=5) for i in range(8): self.sub_rfstatus.table.insert('', 'end', value=(['%s' % (i+1), ] + ['-', ]*9), iid=i+1) self.sub_rfstatus.button_test['command'] = \ lambda: protocal.protocol_test(0xA005, value_list=self.value_rfstatus_channel)
def cell_generate(self): self.sub_cell = Dialog(self.top, 450, 180, title='小区配置') config_item = ('配置标识', '小区标识', '小区功率', '天线组号', '下行掩码', '上行掩码', ' 频点数', ' 载波号', '中心频点', '频点主辅', '子帧配比', '生效子帧', '载波带宽', '特殊子帧', '循环前缀', 'SCG Mask') value_default = (0, 0, 100, 4, 0xf, 0xf, 1, 0, 415000, 0, 0, 0, 5, 7, 0, 0x1f) for num in range(16): value = IntVar(value=value_default[num]) self.value_cell_para[num] = value for entry in self.value_cell_response: entry.__init__() setup_msg_count = self.testList(4, 4) for num in setup_msg_count: index = setup_msg_count.index(num) parameter = tix.LabelEntry(self.sub_cell.canvas) parameter.grid(column=num[1], row=num[0], padx=5, pady=5) parameter.subwidget_list['label']['text'] = config_item[index] parameter.subwidget_list['entry']['textvariable'] = self.value_cell_para[index] self.sub_cell.canvas.create_line(0, 103, 440, 103, fill='#C4C4C4', width=1) parameter = tix.LabelEntry(self.sub_cell.canvas) parameter.grid(column=2, row=4, padx=10, pady=5) parameter.subwidget_list['label']['text'] = '小区标识' parameter.subwidget_list['entry']['textvariable'] = self.value_cell_response[0] parameter = tix.LabelEntry(self.sub_cell.canvas) parameter.grid(column=3, row=4, padx=10, pady=5) parameter.subwidget_list['label']['text'] = '结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_cell_response[1] self.sub_cell.button_test['command'] = lambda: protocal.protocol_test(0xA00C, value_list=self.value_cell_para)
def version_ui(self): self.value_version_test.__init__() self.sub_version = Dialog(self.top, 300, 110, title='版本管理') button1 = Radiobutton(self.sub_version.canvas, text='版本查询', variable=self.value_version_select, value=1) button1.grid(column=0, row=0, padx=10, pady=5) button1 = Radiobutton(self.sub_version.canvas, text='版本下载', variable=self.value_version_select, value=2) button1.grid(column=1, row=0, padx=10, pady=5) button1 = Radiobutton(self.sub_version.canvas, text='版本激活', variable=self.value_version_select, value=3) button1.grid(column=2, row=0, padx=10, pady=5) self.sub_version.canvas.create_line(0, 30, 300, 30, fill='#C4C4C4', width=1) parameter = tix.LabelEntry(self.sub_version.canvas) parameter.grid(columnspan=2, column=1, row=1, padx=15, pady=5, stick='E') parameter.subwidget_list['label']['text'] = '结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_version_test def radiobutton_test(): # print('radiobutton value is:', self.value_version_select.get()) if self.value_version_select.get() == 1: protocal.protocol_test(0xA001) elif self.value_version_select.get() == 2: protocal.protocol_test(0xA002) elif self.value_version_select.get() == 3: protocal.protocol_test(0xA003) else: inert_message_queue.put('ALARM: version manage radiobutton variable is wrong!\n') self.sub_version.button_test['command'] = radiobutton_test
def time_config_ui(self): self.value_time_config_result.__init__() self.value_time_config_response.__init__() self.sub_time_config = Dialog(self.top, 220, 80, title='系统时间配置') parameter1 = tix.LabelEntry(self.sub_time_config.canvas) parameter1.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter1.subwidget_list['label']['text'] = 'Result' parameter1.subwidget_list['entry']['textvariable'] = self.value_time_config_result parameter2 = tix.LabelEntry(self.sub_time_config.canvas) parameter2.grid(column=1, row=0, padx=5, pady=5, stick='w') parameter2.subwidget_list['label']['text'] = '结果返回' parameter2.subwidget_list['entry']['textvariable'] = self.value_time_config_response self.sub_time_config.button_test['command'] = lambda: protocal.protocol_test(0xA008)
def calibration_ui(self): self.sub_calibration = Dialog(self.top, 450, 295, title='校准') label = Label(self.sub_calibration.canvas, text='校准类型') label.grid(pady=5, column=0, row=0, stick='w') combobox = ttk.Combobox(self.sub_calibration.canvas, value=['上行', '下行', '上下行'], \ textvariable=self.value_calibration_para[0], width=9, justify='center') combobox.grid(column=1, row=0) center_freq = tix.LabelEntry(self.sub_calibration.canvas) center_freq.grid(column=2, row=0, padx=5, pady=5, stick='w') center_freq.subwidget_list['label']['text'] = '中心频点' center_freq.subwidget_list['entry']['textvariable'] = self.value_calibration_para[1] center_freq.subwidget_list['entry']['justify'] = 'center' self.sub_calibration.canvas.create_line(0, 25, 620, 25, fill='#C4C4C4', width=1) for num in range(4): value = StringVar() self.value_calibration_result[num] = value result = ['返回结果', '校准结果', 'RMS结果', 'DPD结果'] setup_msg_count = self.testList(1, 4) for num in setup_msg_count: index = setup_msg_count.index(num) parameter = tix.LabelEntry(self.sub_calibration.canvas) if index == 0: parameter.grid(column=num[1], row=(num[0]+1), padx=5, pady=5, columnspan=2, stick='w') parameter.subwidget_list['entry']['width'] = 12 else: parameter.grid(column=num[1]+1, row=(num[0]+1), padx=5, pady=5) parameter.subwidget_list['label']['text'] = result[index] parameter.subwidget_list['entry']['textvariable'] = self.value_calibration_result[index] parameter.subwidget_list['entry']['justify'] = 'center' column_name =['通道号', '发射功率', '校准偏差', '发射增益', '接收增益', '接收功率'] self.sub_calibration.table = ttk.Treeview(self.sub_calibration.canvas, column=[1, 2, 3, 4, 5, 6], height=8, show='headings') for i in range(6): self.sub_calibration.table.column(column='#%d' % (i+1), width=72, minwidth=72, anchor='center') self.sub_calibration.table.heading(column='#%d' % (i+1), text=column_name[i]) self.sub_calibration.table.grid(columnspan=5, column=0, row=2, padx=5, pady=5) for i in range(8): self.sub_calibration.table.insert('', 'end', value=(['%s' % (i+1), ] + ['-', ]*5), iid=i+1) self.sub_calibration.button_test['command'] = \ lambda: protocal.protocol_test(0xA00B, value_list=self.value_calibration_para)
def delay_ui(self): self.value_delay_test.__init__() self.value_delay_response.__init__() self.sub_delay = Dialog(self.top, 240, 80, title='时延配置') parameter1 = tix.LabelEntry(self.sub_delay.canvas) parameter1.grid(column=0, row=0, padx=5, pady=5, stick='w') parameter1.subwidget_list['label']['text'] = '光纤时延' parameter1.subwidget_list['entry']['textvariable'] = self.value_delay_test parameter1.subwidget_list['entry']['width'] = 10 parameter2 = tix.LabelEntry(self.sub_delay.canvas) parameter2.grid(column=1, row=0, padx=5, pady=5, stick='w') parameter2.subwidget_list['label']['text'] = '结果返回' parameter2.subwidget_list['entry']['textvariable'] = self.value_delay_response self.sub_delay.button_test['command'] = lambda: protocal.protocol_test(0xA00D)
def alarm_ui(self): self.value_alarm_response.__init__() self.sub_alarm = Dialog(self.top, 120, 80, title='告警查询') alarm_query = tix.LabelEntry(self.sub_alarm.canvas) alarm_query.grid(column=0, row=0, padx=5, pady=5, stick='w') alarm_query.subwidget_list['label']['text'] = '有无告警' alarm_query.subwidget_list['entry']['textvariable'] = self.value_alarm_response alarm_query.subwidget_list['entry']['justify'] = 'center' self.sub_alarm.button_test['command'] = lambda: protocal.protocol_test(0xA009)
def parameter_ui(self): self.value_parameter_response.__init__() self.sub_parameter = Dialog(self.top, 420, 130, title='参数查询') parameter2 = tix.LabelEntry(self.sub_parameter.canvas) parameter2.grid(column=0, row=0, padx=5, pady=5, stick='e') parameter2.subwidget_list['label']['text'] = '结果返回' parameter2.subwidget_list['entry']['textvariable'] = self.value_parameter_response for num in range(5): value = StringVar() self.value_parameter_result[num] = value result = ['驻波比门限', '板卡温度门限', '射频通道温度门限', '总时隙个数', '下行时隙比'] setup_msg_count = self.testList(2, 3) for i in range(5): num = setup_msg_count[i] parameter = tix.LabelEntry(self.sub_parameter.canvas) parameter.grid(column=num[1], row=num[0]+1, padx=5, pady=5, stick='E') parameter.subwidget_list['label']['text'] = result[i] parameter.subwidget_list['entry']['textvariable'] = self.value_parameter_result[i] self.sub_parameter.button_test['command'] = lambda: protocal.protocol_test(0xA00A)
def hardwara_ui(self): self.sub_hardware = Dialog(self.top, 500, 130, title='硬件参数查询') for num in range(9): value = StringVar() self.value_hardware_result[num] = value result = ['本振类型', '带宽', '最小频点', '最大频点', '通道数', '配置字增益', '分频比系数', '产品型号', '产品类型'] setup_msg_count = self.testList(3, 3) for num in setup_msg_count: index = setup_msg_count.index(num) parameter = tix.LabelEntry(self.sub_hardware.canvas) parameter.grid(column=num[1], row=num[0], padx=5, pady=5, stick='E') parameter.subwidget_list['label']['text'] = result[index] parameter.subwidget_list['entry']['textvariable'] = self.value_hardware_result[index] parameter.subwidget_list['entry']['width'] = 15 self.sub_hardware.button_test['command'] = lambda: protocal.protocol_test(0xA010)
def reboot_ui(self): self.value_reboot_response.__init__() self.sub_reboot = Dialog(self.top, 150, 110, title='RRU复位') label = Label(self.sub_reboot.canvas, text='复位类型', anchor='w') label.grid(pady=5, column=0, row=0, stick='w') combobox = ttk.Combobox(self.sub_reboot.canvas, value=['软复位', '掉电复位'], textvariable=self.value_reboot_type[0], width=10) combobox.grid(column=1, row=0, stick='w') self.sub_reboot.canvas.create_line(0, 26, 160, 26, fill='#C4C4C4', width=1) parameter = tix.LabelEntry(self.sub_reboot.canvas) parameter.grid(columnspan=2, column=0, row=1, padx=5, pady=5, stick='w') parameter.subwidget_list['label']['text'] = '结果返回' parameter.subwidget_list['entry']['textvariable'] = self.value_reboot_response parameter.subwidget_list['entry']['width'] = 12 self.sub_reboot.button_test['command'] = \ lambda: protocal.protocol_test(0xA00E, value_list=self.value_reboot_type)
def add_labelentry(self, text, width=16, content=""): """Create a labelled entry, and return the entry. width is the number of characters to show. content is a string to show in the entry. Call entry.get() to get its current content. """ entry = None if tix is not None: labelentry = tix.LabelEntry(master=self.frame, label=text, labelside="left") entry = labelentry.entry entry.insert(0, content) entry.config(width=width) labelentry.pack() else: labelentry = tkinter.Frame(master=self.frame) tkinter.Label(master=labelentry, text=text).pack(side=tkinter.LEFT) entry = tkinter.Entry(master=labelentry, width=width) entry.insert(0, content) entry.pack() labelentry.pack() return entry
def __init__(self, parent, prop, label): self.prop = prop ## Tix tix for python 3 if (pythVers < 3): self.field = Tix.LabelEntry(parent, label=label, options=''' label.width 12 label.anchor e entry.width 12 ''') else: self.field = tix.LabelEntry(parent, label=label, options=''' label.width 12 label.anchor e entry.width 12 ''') ## Tix tix for python 3 if (pythVers < 3): self.field.pack(side=Tix.TOP, padx=8, pady=2) else: self.field.pack(side=tix.TOP, padx=8, pady=2)
Label(lbfr_tracer, text="Mod -->").place(x=10, y=53) normal_rbt_mod = Radiobutton( lbfr_tracer, text="Normal", value="normal", variable=mod) normal_rbt_mod.place(x=50, y=50) Radiobutton(lbfr_tracer, text="Point", value="point", variable=mod).place(x=115, y=50) Radiobutton(lbfr_tracer, text="Both", value="both", variable=mod).place(x=172, y=50) # LabelFrame_Repere_Option -> frame contenant les éléments pour configurer # le repère lbfr_rep = tix.LabelFrame(root, label="Configuration du repère") lbfr_rep.frame.configure(width=rep.width, height=100) lbfr_rep.grid(row=2, column=1, columnspan=2, sticky=NW) # Eléments de lbfr_rep : Label(lbfr_rep, text="Fenètrage :").place(x=10, y=20) lben_xmin = tix.LabelEntry(lbfr_rep, label="xmin -> ") lben_xmin.entry.insert(0, "-10") lben_xmin.entry.configure(width=5, justify="right") lben_xmin.place(x=30, y=35) lben_xmax = tix.LabelEntry(lbfr_rep, label="xmax -> ") lben_xmax.entry.insert(0, "10") lben_xmax.entry.configure(width=5, justify="right") lben_xmax.place(x=30, y=55) lben_ymin = tix.LabelEntry(lbfr_rep, label="ymin -> ") lben_ymin.entry.insert(0, "-10") lben_ymin.entry.configure(width=5, justify="right") lben_ymin.place(x=31, y=75) lben_ymax = tix.LabelEntry(lbfr_rep, label="ymax -> ") lben_ymax.entry.insert(0, "10") lben_ymax.entry.configure(width=5, justify="right") lben_ymax.place(x=31, y=95)
def __init__(self): """ tkinter root basic option """ self.top = tix.Tk(className='平台测试_CZZ') self.top.geometry('=930x550+300+100') self.top.maxsize(930, 570) self.top.iconbitmap(default='myicon.ico') self.notebook_map = notebook_map ''' variables in self ''' self.value_dstIP = StringVar() self.value_eth3 = StringVar() self.value_dstIP.set(MCT_IP) self.value_date = StringVar() self.value_heartBeat = StringVar() self.value_heartBeat.set('板卡未连接') self.value = [] self.value_testResult = StringVar() self.value_testResult.set('正在测试..') self.value_AFC = StringVar() j = 0 while j < 10: a = IntVar() self.value.append(a) j += 1 self.value_select_IT = IntVar() self.value_testTime = IntVar() self.value_testTime.set(1) ''' main UI ''' self.frame_item = LabelFrame(self.top, relief=FLAT) self.frame_item.grid(column=0, row=0, sticky=N, pady=5) self.notebook = ttk.Notebook(self.frame_item, padding=10) self.notebook.grid() self.frame_IT = Frame(self.notebook, name='it') self.frame_MCT = Frame(self.notebook, name='mct') self.frame_BBP = Frame(self.notebook, name='bbp') self.frame_GES = Frame(self.notebook, name='ges') self.frame_FM = Frame(self.notebook, name='fm') self.notebook.add(self.frame_IT, text='集成') self.notebook.add(self.frame_MCT, text='主控板') self.notebook.add(self.frame_BBP, text='基带板') self.notebook.add(self.frame_GES, text='交换板') self.notebook.add(self.frame_FM, text='风扇板') self.frame_control = LabelFrame(self.frame_item, relief=GROOVE, borderwidth=2, text='实验控制', foreground='blue') self.frame_control.grid(sticky=W, padx=10) self.entry_control_1 = tix.LabelEntry(self.frame_control) self.entry_control_1.subwidget_list['label']['text'] = '试验次数:' self.entry_control_1.subwidget_list['entry'][ 'textvariable'] = self.value_testTime self.entry_control_1.grid(column=0, row=0, padx=10) self.button_control_1 = ttk.Button(self.frame_control, text='设定', width=5) self.button_control_1.grid(column=1, row=0, padx=8) self.null_control_1 = Label(self.frame_control) self.null_control_1.grid(column=2, row=0, padx=130) self.button_control_2 = Button(self.frame_control, text='结果显示', relief='groove') self.button_control_2.grid(column=3, row=0, padx=5) self.msg_control_1 = Message(self.frame_control, width=500, textvariable=self.value_testResult, justify='center', foreground='blue', font=('Arial', 9)) self.msg_control_1.grid(row=1, pady=5, stick=W, column=0, columnspan=4) self.frame_default = Frame(self.frame_item, relief=FLAT) self.frame_default.grid(sticky=W) self.label_default_1 = myLabel(self.frame_default, text=' 时间:') self.label_default_1.grid(column=0, row=0, sticky=W) self.label_default_3 = Label(self.frame_default, textvariable=self.value_date, justify='left') self.dataShow() self.label_default_3.grid(column=1, row=0, pady=5, sticky=W) self.null_default_1 = Label(self.frame_default) self.null_default_1.grid(column=2, row=0, padx=140, pady=10) self.label_default_2 = myLabel(self.frame_default, textvariable=self.value_heartBeat, foreground='blue') self.label_default_2.grid(column=3, row=0, columnspan=2) ## self.heartbeat() self.frame_log = LabelFrame(self.top, height=50, relief=GROOVE, borderwidth=2, text='日志', foreground='blue') self.frame_log.grid(column=1, row=0, sticky=N, pady=15, ipady=5) self.msg = ScrolledText(self.frame_log, width=47, height=28, font=('Arial', 10)) self.msg.grid(padx=10, pady=5, sticky=W, column=0, columnspan=2) # self.insert_message() self.button_log_1 = ttk.Button(self.frame_log, text='保存', width=5, command=self.saveLog) self.button_log_1.grid(row=1, column=0, padx=10, sticky=W) self.button_log_2 = ttk.Button(self.frame_log, text='清除', width=5, command=self.clearLog) self.button_log_2.grid(row=1, column=1, padx=10, sticky=E) ''' IT UI ''' self.frame_IT_1 = LabelFrame(self.frame_IT, relief=GROOVE, borderwidth=2, text='系统信息', foreground='blue') self.frame_IT_1.grid(pady=10, padx=10, sticky=W) self.label_IT_1 = myLabel(self.frame_IT_1, text='目标IP:') self.label_IT_1.grid(column=0, row=0, sticky=W) self.null_IT_1 = Label(self.frame_IT_1) self.null_IT_1.grid(column=2, row=0, padx=100) self.button_IT_1 = ttk.Button(self.frame_IT_1, text='连接', width=5) self.button_IT_1.grid(column=3, row=0, padx=5) self.entry_IT_1 = Entry(self.frame_IT_1, width=22, textvariable=self.value_dstIP, font=('Arial', 9)) self.entry_IT_1.grid(column=1, row=0, pady=5) self.label_IT_2 = myLabel(self.frame_IT_1, text=' ETH_3:') self.label_IT_2.grid(column=0, row=1, sticky=W) self.button_IT_2 = ttk.Button(self.frame_IT_1, text='设置', width=5) self.button_IT_2.grid(column=3, row=1, padx=5) self.entry_IT_2 = Entry(self.frame_IT_1, width=22, textvariable=self.value_eth3, font=('Arial', 9)) self.entry_IT_2.grid(column=1, row=1, pady=5) self.label_IT_3 = myLabel(self.frame_IT_1, text='AFC状态:') self.label_IT_3.grid(column=0, row=2, sticky=W) self.entry_IT_3 = Entry(self.frame_IT_1, width=22, font=('Arial', 9), state='readonly', textvariable=self.value_AFC) self.entry_IT_3.grid(column=1, row=2, pady=5) self.frame_IT_2 = LabelFrame(self.frame_IT, relief=GROOVE, borderwidth=2, text='测试项', foreground='blue') self.frame_IT_2.grid(sticky=W, padx=10) self.testItem_IT = testItem_IT self.cbName_IT = ['IT_Cbutton%s' % (x) for x in range(10)] global i while i < 10: self.cbName_IT[i] = Checkbutton(self.frame_IT_2, text=self.testItem_IT[i], variable=self.value[i]) self.cbName_IT[i].grid(column=testList(2, 5)[i][1], row=testList(2, 5)[i][0], sticky=W, padx=16, pady=5) i = i + 1 self.frame_IT_3 = LabelFrame(self.frame_IT, relief=FLAT) self.frame_IT_3.grid(column=0, row=2, sticky=W, padx=10, pady=5) self.null_IT_2 = Label(self.frame_IT_3) self.null_IT_2.grid(column=0, row=0, padx=168) self.button_IT_3 = ttk.Button(self.frame_IT_3, text='开始', width=5) self.button_IT_3.grid(column=2, row=0, padx=10) self.cbutton_IT_1 = ttk.Checkbutton(self.frame_IT_3, text='全选', variable=self.value_select_IT, command=self.selectAll_IT) self.cbutton_IT_1.grid(column=1, row=0, padx=20)