以下是一个可能的实现:

from tkinter import *

class App:
    def __init__(self, master):
        self.master = master
        master.title('Auto Image Dump')

        # 创建复选框
        self.autoImageDump = IntVar()
        self.autoImageDumpCheckbutton = Checkbutton(master, text='Auto Image Dump', variable=self.autoImageDump)
        self.autoImageDumpCheckbutton.grid(row=0, column=0)

        self.dumpInputatOutput = IntVar()
        self.dumpInputatOutputCheckbutton = Checkbutton(master, text='Dump Input at Output', variable=self.dumpInputatOutput)
        self.dumpInputatOutputCheckbutton.grid(row=0, column=1)

        self.input_ports_IFE = IntVar()
        self.input_ports_IPE = IntVar()
        self.input_ports_BPS = IntVar()
        self.input_ports_JPEG = IntVar()
        self.input_ports_FDHw = IntVar()
        self.input_ports_LRME = IntVar()
        self.input_ports_RANSAC = IntVar()
        self.input_ports_ChiNodes = IntVar()
        self.input_ports_CVP = IntVar()
        self.input_ports_OPE = IntVar()
        self.input_ports_QSAT = IntVar()
        self.input_ports_others_nodes = IntVar()

        self.input_ports_IFE_Checkbutton = Checkbutton(master, text='input_ports_IFE', variable=self.input_ports_IFE)
        self.input_ports_IPE_Checkbutton = Checkbutton(master, text='input_ports_IPE', variable=self.input_ports_IPE)
        self.input_ports_BPS_Checkbutton = Checkbutton(master, text='input_ports_BPS', variable=self.input_ports_BPS)
        self.input_ports_JPEG_Checkbutton = Checkbutton(master, text='input_ports_JPEG', variable=self.input_ports_JPEG)
        self.input_ports_FDHw_Checkbutton = Checkbutton(master, text='input_ports_FDHw', variable=self.input_ports_FDHw)
        self.input_ports_LRME_Checkbutton = Checkbutton(master, text='input_ports_LRME', variable=self.input_ports_LRME)
        self.input_ports_RANSAC_Checkbutton = Checkbutton(master, text='input_ports_RANSAC', variable=self.input_ports_RANSAC)
        self.input_ports_ChiNodes_Checkbutton = Checkbutton(master, text='input_ports_ChiNodes', variable=self.input_ports_ChiNodes)
        self.input_ports_CVP_Checkbutton = Checkbutton(master, text='input_ports_CVP', variable=self.input_ports_CVP)
        self.input_ports_OPE_Checkbutton = Checkbutton(master, text='input_ports_OPE', variable=self.input_ports_OPE)
        self.input_ports_QSAT_Checkbutton = Checkbutton(master, text='input_ports_QSAT', variable=self.input_ports_QSAT)
        self.input_ports_others_nodes_Checkbutton = Checkbutton(master, text='input_ports_others_nodes', variable=self.input_ports_others_nodes)

        self.input_ports_IFE_Checkbutton.grid(row=1, column=0)
        self.input_ports_IPE_Checkbutton.grid(row=2, column=0)
        self.input_ports_BPS_Checkbutton.grid(row=3, column=0)
        self.input_ports_JPEG_Checkbutton.grid(row=4, column=0)
        self.input_ports_FDHw_Checkbutton.grid(row=5, column=0)
        self.input_ports_LRME_Checkbutton.grid(row=6, column=0)
        self.input_ports_RANSAC_Checkbutton.grid(row=7, column=0)
        self.input_ports_ChiNodes_Checkbutton.grid(row=8, column=0)
        self.input_ports_CVP_Checkbutton.grid(row=9, column=0)
        self.input_ports_OPE_Checkbutton.grid(row=10, column=0)
        self.input_ports_QSAT_Checkbutton.grid(row=11, column=0)
        self.input_ports_others_nodes_Checkbutton.grid(row=12, column=0)

        self.IFEInputPortCSIDTPG = IntVar()
        self.IFEInputPortCAMIFTPG = IntVar()
        self.IFEInputPortSensor = IntVar()
        self.IFEInputPortRDI0 = IntVar()
        self.IFEInputPortRDI1 = IntVar()
        self.IFEInputPortRDI2 = IntVar()
        self.IFEInpurPortDualPD = IntVar()
        self.ALLports = IntVar()

        self.IFEInputPortCSIDTPG_Checkbutton = Checkbutton(master, text='IFEInputPortCSIDTPG', variable=self.IFEInputPortCSIDTPG)
        self.IFEInputPortCAMIFTPG_Checkbutton = Checkbutton(master, text='IFEInputPortCAMIFTPG', variable=self.IFEInputPortCAMIFTPG)
        self.IFEInputPortSensor_Checkbutton = Checkbutton(master, text='IFEInputPortSensor', variable=self.IFEInputPortSensor)
        self.IFEInputPortRDI0_Checkbutton = Checkbutton(master, text='IFEInputPortRDI0', variable=self.IFEInputPortRDI0)
        self.IFEInputPortRDI1_Checkbutton = Checkbutton(master, text='IFEInputPortRDI1', variable=self.IFEInputPortRDI1)
        self.IFEInputPortRDI2_Checkbutton = Checkbutton(master, text='IFEInputPortRDI2', variable=self.IFEInputPortRDI2)
        self.IFEInpurPortDualPD_Checkbutton = Checkbutton(master, text='IFEInpurPortDualPD', variable=self.IFEInpurPortDualPD)
        self.ALLports_Checkbutton = Checkbutton(master, text='ALLports', variable=self.ALLports)

        self.IFEInputPortCSIDTPG_Checkbutton.grid(row=1, column=1)
        self.IFEInputPortCAMIFTPG_Checkbutton.grid(row=2, column=1)
        self.IFEInputPortSensor_Checkbutton.grid(row=3, column=1)
        self.IFEInputPortRDI0_Checkbutton.grid(row=4, column=1)
        self.IFEInputPortRDI1_Checkbutton.grid(row=5, column=1)
        self.IFEInputPortRDI2_Checkbutton.grid(row=6, column=1)
        self.IFEInpurPortDualPD_Checkbutton.grid(row=7, column=1)
        self.ALLports_Checkbutton.grid(row=8, column=1)

        self.output_ports_IFE = IntVar()
        self.output_ports_IPE = IntVar()
        self.output_ports_BPS = IntVar()
        self.output_ports_JPEG = IntVar()
        self.output_ports_FDHw = IntVar()
        self.output_ports_LRME = IntVar()
        self.output_ports_RANSAC = IntVar()
        self.output_ports_ChiNodes = IntVar()
        self.output_ports_CVP = IntVar()
        self.output_ports_TFE = IntVar()
        self.output_ports_OPE = IntVar()
        self.output_ports_QSAT = IntVar()
        self.output_ports_other_nodes = IntVar()

        self.output_ports_IFE_Checkbutton = Checkbutton(master, text='output_ports_IFE', variable=self.output_ports_IFE)
        self.output_ports_IPE_Checkbutton = Checkbutton(master, text='output_ports_IPE', variable=self.output_ports_IPE)
        self.output_ports_BPS_Checkbutton = Checkbutton(master, text='output_ports_BPS', variable=self.output_ports_BPS)
        self.output_ports_JPEG_Checkbutton = Checkbutton(master, text='output_ports_JPEG', variable=self.output_ports_JPEG)
        self.output_ports_FDHw_Checkbutton = Checkbutton(master, text='output_ports_FDHw', variable=self.output_ports_FDHw)
        self.output_ports_LRME_Checkbutton = Checkbutton(master, text='output_ports_LRME', variable=self.output_ports_LRME)
        self.output_ports_RANSAC_Checkbutton = Checkbutton(master, text='output_ports_RANSAC', variable=self.output_ports_RANSAC)
        self.output_ports_ChiNodes_Checkbutton = Checkbutton(master, text='output_ports_ChiNodes', variable=self.output_ports_ChiNodes)
        self.output_ports_CVP_Checkbutton = Checkbutton(master, text='output_ports_CVP', variable=self.output_ports_CVP)
        self.output_ports_TFE_Checkbutton = Checkbutton(master, text='output_ports_TFE', variable=self.output_ports_TFE)
        self.output_ports_OPE_Checkbutton = Checkbutton(master, text='output_ports_OPE', variable=self.output_ports_OPE)
        self.output_ports_QSAT_Checkbutton = Checkbutton(master, text='output_ports_QSAT', variable=self.output_ports_QSAT)
        self.output_ports_other_nodes_Checkbutton = Checkbutton(master, text='output_ports_other_nodes', variable=self.output_ports_other_nodes)

        self.output_ports_IFE_Checkbutton.grid(row=1, column=2)
        self.output_ports_IPE_Checkbutton.grid(row=2, column=2)
        self.output_ports_BPS_Checkbutton.grid(row=3, column=2)
        self.output_ports_JPEG_Checkbutton.grid(row=4, column=2)
        self.output_ports_FDHw_Checkbutton.grid(row=5, column=2)
        self.output_ports_LRME_Checkbutton.grid(row=6, column=2)
        self.output_ports_RANSAC_Checkbutton.grid(row=7, column=2)
        self.output_ports_ChiNodes_Checkbutton.grid(row=8, column=2)
        self.output_ports_CVP_Checkbutton.grid(row=9, column=2)
        self.output_ports_TFE_Checkbutton.grid(row=10, column=2)
        self.output_ports_OPE_Checkbutton.grid(row=11, column=2)
        self.output_ports_QSAT_Checkbutton.grid(row=12, column=2)
        self.output_ports_other_nodes_Checkbutton.grid(row=13, column=2)

        self.IFEOutputPortFull = IntVar()
        self.IFEOutputPortDS4 = IntVar()
        self.IFEOutputPortDS16 = IntVar()
        self.IFEOutputPortCAMIFRaw = IntVar()
        self.IFEOutputPortLSCRaw = IntVar()
        self.IFEOutputPortGTMRaw = IntVar()
        self.IFEOutputPortFD = IntVar()
        self.IFEOutputPortPDAF = IntVar()
        self.IFEOutputPortRDI0 = IntVar()
        self.IFEOutputPortRDI1 = IntVar()
        self.IFEOutputPortRDI2 = IntVar()
        self.IFEOutputPortRDI3 = IntVar()

        self.IFEOutputPortFull_Checkbutton = Checkbutton(master, text='IFEOutputPortFull', variable=self.IFEOutputPortFull)
        self.IFEOutputPortDS4_Checkbutton = Checkbutton(master, text='IFEOutputPortDS4', variable=self.IFEOutputPortDS4)
        self.IFEOutputPortDS16_Checkbutton = Checkbutton(master, text='IFEOutputPortDS16', variable=self.IFEOutputPortDS16)
        self.IFEOutputPortCAMIFRaw_Checkbutton = Checkbutton(master, text='IFEOutputPortCAMIFRaw', variable=self.IFEOutputPortCAMIFRaw)
        self.IFEOutputPortLSCRaw_Checkbutton = Checkbutton(master, text='IFEOutputPortLSCRaw', variable=self.IFEOutputPortLSCRaw)
        self.IFEOutputPortGTMRaw_Checkbutton = Checkbutton(master, text='IFEOutputPortGTMRaw', variable=self.IFEOutputPortGTMRaw)
        self.IFEOutputPortFD_Checkbutton = Checkbutton(master, text='IFEOutputPortFD', variable=self.IFEOutputPortFD)
        self.IFEOutputPortPDAF_Checkbutton = Checkbutton(master, text='IFEOutputPortPDAF', variable=self.IFEOutputPortPDAF)
        self.IFEOutputPortRDI0_Checkbutton = Checkbutton(master, text='IFEOutputPortRDI0', variable=self.IFEOutputPortRDI0)
        self.IFEOutputPortRDI1_Checkbutton = Checkbutton(master, text='IFEOutputPortRDI1', variable=self.IFEOutputPortRDI1)
        self.IFEOutputPortRDI2_Checkbutton = Checkbutton(master, text='IFEOutputPortRDI2', variable=self.IFEOutputPortRDI2)
        self.IFEOutputPortRDI3_Checkbutton = Checkbutton(master, text='IFEOutputPortRDI3', variable=self.IFEOutputPortRDI3)

        self.IFEOutputPortFull_Checkbutton.grid(row=1, column=3)
        self.IFEOutputPortDS4_Checkbutton.grid(row=2, column=3)
        self.IFEOutputPortDS16_Checkbutton.grid(row=3, column=3)
        self.IFEOutputPortCAMIFRaw_Checkbutton.grid(row=4, column=3)
        self.IFEOutputPortLSCRaw_Checkbutton.grid(row=5, column=3)
        self.IFEOutputPortGTMRaw_Checkbutton.grid(row=6, column=3)
        self.IFEOutputPortFD_Checkbutton.grid(row=7, column=3)
        self.IFEOutputPortPDAF_Checkbutton.grid(row=8, column=3)
        self.IFEOutputPortRDI0_Checkbutton.grid(row=9, column=3)
        self.IFEOutputPortRDI1_Checkbutton.grid(row=10, column=3)
        self.IFEOutputPortRDI2_Checkbutton.grid(row=11, column=3)
        self.IFEOutputPortRDI3_Checkbutton.grid(row=12, column=3)

        # 添加更新标签的按钮
        self.update_button = Button(master, text='Update', command=self.update_label)
        self.update_button.grid(row=13, column=0, columnspan=2)

        # 添加标签来显示结果
        self.label = Label(master, text='', anchor=W, justify=LEFT)
        self.label.grid(row=14, column=0, columnspan=4, sticky=W+E)

    def update_label(self):
        # 计算位掩码
        autoImageDumpMask = 0
        autoInputImageDumpMask = 0
        autoImageDumpIFEinputPortMask = 0
        autoImageDumpIFEoutputPortMask = 0

        if self.autoImageDump.get():
            autoImageDumpMask = 1

        if self.dumpInputatOutput.get():
            autoImageDumpMask |= 2

        if self.input_ports_IFE.get():
            autoInputImageDumpMask |= 0x1

        if self.input_ports_IPE.get():
            autoInputImageDumpMask |= 0x2

        if self.input_ports_BPS.get():
            autoInputImageDumpMask |= 0x4

        if self.input_ports_JPEG.get():
            autoInputImageDumpMask |= 0x8

        if self.input_ports_FDHw.get():
            autoInputImageDumpMask |= 0x10

        if self.input_ports_LRME.get():
            autoInputImageDumpMask |= 0x20

        if self.input_ports_RANSAC.get():
            autoInputImageDumpMask |= 0x40

        if self.input_ports_ChiNodes.get():
            autoInputImageDumpMask |= 0x80

        if self.input_ports_CVP.get():
            autoInputImageDumpMask |= 0x100

        if self.input_ports_OPE.get():
            autoInputImageDumpMask |= 0x400

        if self.input_ports_QSAT.get():
            autoInputImageDumpMask |= 0x800

        if self.input_ports_others_nodes.get():
            autoInputImageDumpMask |= 0x40000000

        if self.IFEInputPortCSIDTPG.get():
            autoImageDumpIFEinputPortMask |= 0x1

        if self.IFEInputPortCAMIFTPG.get():
            autoImageDumpIFEinputPortMask |= 0x2

        if self.IFEInputPortSensor.get():
            autoImageDumpIFEinputPortMask |= 0x4

        if self.IFEInputPortRDI0.get():
            autoImageDumpIFEinputPortMask |= 0x8

        if self.IFEInputPortRDI1.get():
            autoImageDumpIFEinputPortMask |= 0x10

        if self.IFEInputPortRDI2.get():
            autoImageDumpIFEinputPortMask |= 0x20

        if self.IFEInpurPortDualPD.get():
            autoImageDumpIFEinputPortMask |= 0x40

        if self.ALLports.get():
            autoImageDumpIFEinputPortMask |= 0x7F

        if self.output_ports_IFE.get():
            autoImageDumpMask |= 0x1

        if self.output_ports_IPE.get():
            autoImageDumpMask |= 0x2

        if self.output_ports_BPS.get():
            autoImageDumpMask |= 0x4

        if self.output_ports_JPEG.get():
            autoImageDumpMask |= 0x8

        if self.output_ports_FDHw.get():
            autoImageDumpMask |= 0x10

        if self.output_ports_LRME.get():
            autoImageDumpMask |= 0x20

        if self.output_ports_RANSAC.get():
            autoImageDumpMask |= 0x40

        if self.output_ports_ChiNodes.get():
            autoImageDumpMask |= 0x80

        if self.output_ports_CVP.get():
            autoImageDumpMask |= 0x100

        if self.output_ports_TFE.get():
            autoImageDumpMask |= 0x200

        if self.output_ports_OPE.get():
            autoImageDumpMask |= 0x400

        if self.output_ports_QSAT.get():
            autoImageDumpMask |= 0x800

        if self.output_ports_other_nodes.get():
            autoImageDumpMask |= 0x40000000

        if self.IFEOutputPortFull.get():
            autoImageDumpIFEoutputPortMask |= 0x1

        if self.IFEOutputPortDS4.get():
            autoImageDumpIFEoutputPortMask |= 0x2

        if self.IFEOutputPortDS16.get():
            autoImageDumpIFEoutputPortMask |= 0x4

        if self.IFEOutputPortCAMIFRaw.get():
            autoImageDumpIFEoutputPortMask |= 0x8

        if self.IFEOutputPortLSCRaw.get():
            autoImageDumpIFEoutputPortMask |= 0x10

        if self.IFEOutputPortGTMRaw.get():
            autoImageDumpIFEoutputPortMask |= 0x20

        if self.IFEOutputPortFD.get():
            autoImageDumpIFEoutputPortMask |= 0x40

        if self.IFEOutputPortPDAF.get():
            autoImageDumpIFEoutputPortMask |= 0x80

        if self.IFEOutputPortRDI0.get():
            autoImageDumpIFEoutputPortMask |= 0x100

        if self.IFEOutputPortRDI1.get():
            autoImageDumpIFEoutputPortMask |= 0x200

        if self.IFEOutputPortRDI2.get():
            autoImageDumpIFEoutputPortMask |= 0x400

        if self.IFEOutputPortRDI3.get():
            autoImageDumpIFEoutputPortMask |= 0x800

        # 将不为零的变量以等式字符串显示在标签上,以空格分开
        result = ''
        if autoImageDumpMask:
            result += f'autoImageDumpMask = {autoImageDumpMask} '
        if autoInputImageDumpMask:
            result += f'autoInputImageDumpMask = {autoInputImageDumpMask} '
        if autoImageDumpIFEinputPortMask:
            result += f'autoImageDumpIFEinputPortMask = {autoImageDumpIFEinputPortMask} '
        if autoImageDumpIFEoutputPortMask:
            result += f'autoImageDumpIFEoutputPortMask = {autoImageDumpIFEoutputPortMask} '
        self.label.config(text=result)

root = Tk()
App(root)
root.mainloop()
Python tkinter 界面软件:自动图像转储配置工具

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

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