Python tkinter 自动图像转储工具界面开发
以下是一个示例代码,实现了上述需求:
import tkinter as tk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('Auto Image Dump Tool')
# 创建 Label1
self.label1 = tk.Label(self, text='autoImageDumpMask = 0\nautoInputImageDumpMask = 0\nautoImageDump = 0\nautoImageDumpIFEinputPortMask = 0\nautoImageDumpIFEoutputPortMask = 0')
self.label1.pack()
# 创建 Checkbutton1
self.autoImageDump = tk.IntVar(value=0)
self.checkbutton1 = tk.Checkbutton(self, text='autoImageDump', variable=self.autoImageDump, onvalue=1, offvalue=0, command=self.update_label)
self.checkbutton1.pack(side='left')
# 创建 Checkbutton2
self.dumpInputatOutput = tk.IntVar(value=0)
self.checkbutton2 = tk.Checkbutton(self, text='dumpInputatOutput', variable=self.dumpInputatOutput, onvalue=1, offvalue=0, command=self.update_label)
self.checkbutton2.pack(side='left')
# 创建 Checkbutton 列表
self.input_ports_IFE = tk.IntVar(value=0)
self.input_ports_IPE = tk.IntVar(value=0)
self.input_ports_BPS = tk.IntVar(value=0)
self.input_ports_JPEG = tk.IntVar(value=0)
self.input_ports_FDHw = tk.IntVar(value=0)
self.input_ports_LRME = tk.IntVar(value=0)
self.input_ports_RANSAC = tk.IntVar(value=0)
self.input_ports_ChiNodes = tk.IntVar(value=0)
self.input_ports_CVP = tk.IntVar(value=0)
self.input_ports_OPE = tk.IntVar(value=0)
self.input_ports_QSAT = tk.IntVar(value=0)
self.input_ports_others_nodes = tk.IntVar(value=0)
self.input_ports_list = [
('IFE', self.input_ports_IFE),
('IPE', self.input_ports_IPE),
('BPS', self.input_ports_BPS),
('JPEG', self.input_ports_JPEG),
('FDHw', self.input_ports_FDHw),
('LRME', self.input_ports_LRME),
('RANSAC', self.input_ports_RANSAC),
('ChiNodes', self.input_ports_ChiNodes),
('CVP', self.input_ports_CVP),
('OPE', self.input_ports_OPE),
('QSAT', self.input_ports_QSAT),
('others nodes', self.input_ports_others_nodes)
]
self.input_ports_frame = self.create_checkbutton_frame('Input Ports', self.input_ports_list, self.update_label)
self.input_ports_frame.pack(side='left')
self.IFEInputPortCSIDTPG = tk.IntVar(value=0)
self.IFEInputPortCAMIFTPG = tk.IntVar(value=0)
self.IFEInputPortSensor = tk.IntVar(value=0)
self.IFEInputPortRDI0 = tk.IntVar(value=0)
self.IFEInputPortRDI1 = tk.IntVar(value=0)
self.IFEInputPortRDI2 = tk.IntVar(value=0)
self.IFEInpurPortDualPD = tk.IntVar(value=0)
self.IFEInputPort_list = [
('CSIDTPG', self.IFEInputPortCSIDTPG),
('CAMIFTPG', self.IFEInputPortCAMIFTPG),
('Sensor', self.IFEInputPortSensor),
('RDI0', self.IFEInputPortRDI0),
('RDI1', self.IFEInputPortRDI1),
('RDI2', self.IFEInputPortRDI2),
('DualPD', self.IFEInpurPortDualPD),
('ALL', tk.IntVar(value=0, name='ALL'))
]
self.IFEInputPort_frame = self.create_checkbutton_frame('IFE Input Port', self.IFEInputPort_list, self.update_label)
self.IFEInputPort_frame.pack(side='left')
self.output_ports_IFE = tk.IntVar(value=0)
self.output_ports_IPE = tk.IntVar(value=0)
self.output_ports_BPS = tk.IntVar(value=0)
self.output_ports_JPEG = tk.IntVar(value=0)
self.output_ports_FDHw = tk.IntVar(value=0)
self.output_ports_LRME = tk.IntVar(value=0)
self.output_ports_RANSAC = tk.IntVar(value=0)
self.output_ports_ChiNodes = tk.IntVar(value=0)
self.output_ports_CVP = tk.IntVar(value=0)
self.output_ports_TFE = tk.IntVar(value=0)
self.output_ports_OPE = tk.IntVar(value=0)
self.output_ports_QSAT = tk.IntVar(value=0)
self.output_ports_other_nodes = tk.IntVar(value=0)
self.output_ports_list = [
('IFE', self.output_ports_IFE),
('IPE', self.output_ports_IPE),
('BPS', self.output_ports_BPS),
('JPEG', self.output_ports_JPEG),
('FDHw', self.output_ports_FDHw),
('LRME', self.output_ports_LRME),
('RANSAC', self.output_ports_RANSAC),
('ChiNodes', self.output_ports_ChiNodes),
('CVP', self.output_ports_CVP),
('TFE', self.output_ports_TFE),
('OPE', self.output_ports_OPE),
('QSAT', self.output_ports_QSAT),
('other nodes', self.output_ports_other_nodes)
]
self.output_ports_frame = self.create_checkbutton_frame('Output Ports', self.output_ports_list, self.update_label)
self.output_ports_frame.pack(side='left')
self.IFEOutputPortFull = tk.IntVar(value=0)
self.IFEOutputPortDS4 = tk.IntVar(value=0)
self.IFEOutputPortDS16 = tk.IntVar(value=0)
self.IFEOutputPortCAMIFRaw = tk.IntVar(value=0)
self.IFEOutputPortLSCRaw = tk.IntVar(value=0)
self.IFEOutputPortGTMRaw = tk.IntVar(value=0)
self.IFEOutputPortFD = tk.IntVar(value=0)
self.IFEOutputPortPDAF = tk.IntVar(value=0)
self.IFEOutputPortRDI0 = tk.IntVar(value=0)
self.IFEOutputPortRDI1 = tk.IntVar(value=0)
self.IFEOutputPortRDI2 = tk.IntVar(value=0)
self.IFEOutputPortRDI3 = tk.IntVar(value=0)
self.IFEOutputPortStatsRS = tk.IntVar(value=0)
self.IFEOutputPortStatsCS = tk.IntVar(value=0)
self.IFEOutputPortStatsLTMDC = tk.IntVar(value=0)
self.IFEOutputPortStatsIHIST = tk.IntVar(value=0)
self.IFEOutputPortStatsBHIST = tk.IntVar(value=0)
self.IFEOutputPortStatsHDRBE = tk.IntVar(value=0)
self.IFEOutputPortStatsHDRBHIST = tk.IntVar(value=0)
self.IFEOutputPortStatsTLBG = tk.IntVar(value=0)
self.IFEOutputPortStatsBF = tk.IntVar(value=0)
self.IFEOutputPortStatsAWBBG = tk.IntVar(value=0)
self.IFEOutputPortDisplayFull = tk.IntVar(value=0)
self.IFEOutputPortDisplayDS4 = tk.IntVar(value=0)
self.IFEOutputPortDisplayDS16 = tk.IntVar(value=0)
self.IFEOutputPortStatsDualPD = tk.IntVar(value=0)
self.IFEOutputPortRDIRD = tk.IntVar(value=0)
self.IFEOutputPortLCR = tk.IntVar(value=0)
self.IFEOutputPortPDHWPreProcessedPD = tk.IntVar(value=0)
self.IFEOutputPortStatsBFW = tk.IntVar(value=0)
self.IFEOutputPortStatsAECBE = tk.IntVar(value=0)
self.IFEOutputPortStatsLTMDC = tk.IntVar(value=0)
self.IFEOutputPortStatsGTMBHIST = tk.IntVar(value=0)
self.IFEOutputPortSparsePDOut = tk.IntVar(value=0)
self.IFELITEOutputPortStatsBG = tk.IntVar(value=0)
self.IFELITEOutputPortPreProcessRaw = tk.IntVar(value=0)
self.IFEOutputPortStatsAECBHIST = tk.IntVar(value=0)
self.IFEOutputPort_list = [
('Full', self.IFEOutputPortFull),
('DS4', self.IFEOutputPortDS4),
('DS16', self.IFEOutputPortDS16),
('CAMIFRaw', self.IFEOutputPortCAMIFRaw),
('LSCRaw', self.IFEOutputPortLSCRaw),
('GTMRaw', self.IFEOutputPortGTMRaw),
('FD', self.IFEOutputPortFD),
('PDAF', self.IFEOutputPortPDAF),
('RDI0', self.IFEOutputPortRDI0),
('RDI1', self.IFEOutputPortRDI1),
('RDI2', self.IFEOutputPortRDI2),
('RDI3', self.IFEOutputPortRDI3),
('StatsRS', self.IFEOutputPortStatsRS),
('StatsCS', self.IFEOutputPortStatsCS),
('StatsLTMDC', self.IFEOutputPortStatsLTMDC),
('StatsIHIST', self.IFEOutputPortStatsIHIST),
('StatsBHIST', self.IFEOutputPortStatsBHIST),
('StatsHDRBE', self.IFEOutputPortStatsHDRBE),
('StatsHDRBHIST', self.IFEOutputPortStatsHDRBHIST),
('StatsTLBG', self.IFEOutputPortStatsTLBG),
('StatsBF', self.IFEOutputPortStatsBF),
('StatsAWBBG', self.IFEOutputPortStatsAWBBG),
('DisplayFull', self.IFEOutputPortDisplayFull),
('DisplayDS4', self.IFEOutputPortDisplayDS4),
('DisplayDS16', self.IFEOutputPortDisplayDS16),
('StatsDualPD', self.IFEOutputPortStatsDualPD),
('RDIRD', self.IFEOutputPortRDIRD),
('LCR', self.IFEOutputPortLCR),
('PDHWPreProcessedPD', self.IFEOutputPortPDHWPreProcessedPD),
('StatsBFW', self.IFEOutputPortStatsBFW),
('StatsAECBE', self.IFEOutputPortStatsAECBE),
('StatsLTMDC', self.IFEOutputPortStatsLTMDC),
('StatsGTMBHIST', self.IFEOutputPortStatsGTMBHIST),
('SparsePDOut', self.IFEOutputPortSparsePDOut),
('StatsBG', self.IFELITEOutputPortStatsBG),
('PreProcessRaw', self.IFELITEOutputPortPreProcessRaw),
('StatsAECBHIST', self.IFEOutputPortStatsAECBHIST),
('ALL', tk.IntVar(value=0, name='ALL'))
]
self.IFEOutputPort_frame = self.create_checkbutton_frame('IFE Output Port', self.IFEOutputPort_list, self.update_label)
self.IFEOutputPort_frame.pack(side='left')
def create_checkbutton_frame(self, title, var_list, command=None):
frame = tk.Frame(self)
tk.Label(frame, text=title).pack()
for text, var in var_list:
checkbutton = tk.Checkbutton(frame, text=text, variable=var, onvalue=var.get(), offvalue=0, command=command)
checkbutton.pack(anchor='w')
return frame
def update_label(self):
autoImageDumpMask = self.get_mask(self.input_ports_list) | self.get_mask(self.output_ports_list) | self.autoImageDumpIFEoutputPortMask.get()
autoInputImageDumpMask = self.get_mask(self.IFEInputPort_list)
autoImageDump = (self.autoImageDump.get() << 1) | self.dumpInputatOutput.get()
autoImageDumpIFEinputPortMask = self.get_mask(self.IFEInputPort_list)
autoImageDumpIFEoutputPortMask = self.get_mask(self.IFEOutputPort_list)
self.label1.config(text='autoImageDumpMask = ' + str(autoImageDumpMask) + '\nautoInputImageDumpMask = ' + str(autoInputImageDumpMask) + '\nautoImageDump = ' + str(autoImageDump) + '\nautoImageDumpIFEinputPortMask = ' + str(autoImageDumpIFEinputPortMask) + '\nautoImageDumpIFEoutputPortMask = ' + str(autoImageDumpIFEoutputPortMask))
def get_mask(self, var_list):
mask = 0
for _, var in var_list:
if var.get() == 1:
mask |= var.get()
return mask
if __name__ == '__main__':
app = App()
app.mainloop()
原文地址: https://www.cveoy.top/t/topic/lFuv 著作权归作者所有。请勿转载和采集!