以下是一个示例代码,实现了上述需求:

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()
Python tkinter 自动图像转储工具界面开发

原文地址: https://www.cveoy.top/t/topic/lFuv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录