import tkinter as tk

class App(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.create_widgets()

    def create_widgets(self):
        # Label1
        self.label1 = tk.Label(self.master, text="")
        self.label1.grid(row=0, column=0, columnspan=4)

        # Checkbutton
        self.autoImageDump = tk.IntVar()
        self.dumpInputatOutput = tk.IntVar()
        self.autoInputImageDumpMask = tk.IntVar()
        self.autoImageDumpMask = tk.IntVar()
        self.autoImageDumpIFEinputPortMask = tk.IntVar()
        self.autoImageDumpIFEoutputPortMask = tk.IntVar()

        self.checkbutton1 = tk.Checkbutton(self.master, text='autoImageDump', variable=self.autoImageDump, command=self.update_label)
        self.checkbutton1.grid(row=1, column=0)

        self.checkbutton2 = tk.Checkbutton(self.master, text='dumpInputatOutput', variable=self.dumpInputatOutput, command=self.update_label)
        self.checkbutton2.grid(row=1, column=1)

        # Input Port Options
        input_ports_IFE = 0x1
        input_ports_IPE = 0x2
        input_ports_BPS = 0x4
        input_ports_JPEG = 0x8
        input_ports_FDHw = 0x10
        input_ports_LRME = 0x20
        input_ports_RANSAC = 0x40
        input_ports_ChiNodes = 0x80
        input_ports_CVP = 0x100
        input_ports_OPE = 0x400
        input_ports_QSAT = 0x800
        input_ports_others_nodes = 0x40000000

        self.checkbutton3 = tk.Checkbutton(self.master, text='input_ports_IFE', variable=self.autoInputImageDumpMask, onvalue=input_ports_IFE, command=self.update_label)
        self.checkbutton3.grid(row=2, column=0)
        self.checkbutton4 = tk.Checkbutton(self.master, text='input_ports_IPE', variable=self.autoInputImageDumpMask, onvalue=input_ports_IPE, command=self.update_label)
        self.checkbutton4.grid(row=3, column=0)
        self.checkbutton5 = tk.Checkbutton(self.master, text='input_ports_BPS', variable=self.autoInputImageDumpMask, onvalue=input_ports_BPS, command=self.update_label)
        self.checkbutton5.grid(row=4, column=0)
        self.checkbutton6 = tk.Checkbutton(self.master, text='input_ports_JPEG', variable=self.autoInputImageDumpMask, onvalue=input_ports_JPEG, command=self.update_label)
        self.checkbutton6.grid(row=5, column=0)
        self.checkbutton7 = tk.Checkbutton(self.master, text='input_ports_FDHw', variable=self.autoInputImageDumpMask, onvalue=input_ports_FDHw, command=self.update_label)
        self.checkbutton7.grid(row=6, column=0)
        self.checkbutton8 = tk.Checkbutton(self.master, text='input_ports_LRME', variable=self.autoInputImageDumpMask, onvalue=input_ports_LRME, command=self.update_label)
        self.checkbutton8.grid(row=7, column=0)
        self.checkbutton9 = tk.Checkbutton(self.master, text='input_ports_RANSAC', variable=self.autoInputImageDumpMask, onvalue=input_ports_RANSAC, command=self.update_label)
        self.checkbutton9.grid(row=8, column=0)
        self.checkbutton10 = tk.Checkbutton(self.master, text='input_ports_ChiNodes', variable=self.autoInputImageDumpMask, onvalue=input_ports_ChiNodes, command=self.update_label)
        self.checkbutton10.grid(row=9, column=0)
        self.checkbutton11 = tk.Checkbutton(self.master, text='input_ports_CVP', variable=self.autoInputImageDumpMask, onvalue=input_ports_CVP, command=self.update_label)
        self.checkbutton11.grid(row=10, column=0)
        self.checkbutton12 = tk.Checkbutton(self.master, text='input_ports_OPE', variable=self.autoInputImageDumpMask, onvalue=input_ports_OPE, command=self.update_label)
        self.checkbutton12.grid(row=11, column=0)
        self.checkbutton13 = tk.Checkbutton(self.master, text='input_ports_QSAT', variable=self.autoInputImageDumpMask, onvalue=input_ports_QSAT, command=self.update_label)
        self.checkbutton13.grid(row=12, column=0)
        self.checkbutton14 = tk.Checkbutton(self.master, text='input_ports_others nodes', variable=self.autoInputImageDumpMask, onvalue=input_ports_others_nodes, command=self.update_label)
        self.checkbutton14.grid(row=13, column=0)

        # IFE Input Port Options
        IFEInputPortCSIDTPG = 0x1
        IFEInputPortCAMIFTPG = 0x2
        IFEInputPortSensor = 0x4
        IFEInputPortRDI0 = 0x8
        IFEInputPortRDI1 = 0x10
        IFEInputPortRDI2 = 0x20
        IFEInpurPortDualPD = 0x40
        ALLports = 0x7F

        self.checkbutton15 = tk.Checkbutton(self.master, text='IFEInputPortCSIDTPG', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortCSIDTPG, command=self.update_label)
        self.checkbutton15.grid(row=2, column=1)
        self.checkbutton16 = tk.Checkbutton(self.master, text='IFEInputPortCAMIFTPG', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortCAMIFTPG, command=self.update_label)
        self.checkbutton16.grid(row=3, column=1)
        self.checkbutton17 = tk.Checkbutton(self.master, text='IFEInputPortSensor', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortSensor, command=self.update_label)
        self.checkbutton17.grid(row=4, column=1)
        self.checkbutton18 = tk.Checkbutton(self.master, text='IFEInputPortRDI0', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortRDI0, command=self.update_label)
        self.checkbutton18.grid(row=5, column=1)
        self.checkbutton19 = tk.Checkbutton(self.master, text='IFEInputPortRDI1', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortRDI1, command=self.update_label)
        self.checkbutton19.grid(row=6, column=1)
        self.checkbutton20 = tk.Checkbutton(self.master, text='IFEInputPortRDI2', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInputPortRDI2, command=self.update_label)
        self.checkbutton20.grid(row=7, column=1)
        self.checkbutton21 = tk.Checkbutton(self.master, text='IFEInpurPortDualPD', variable=self.autoImageDumpIFEinputPortMask, onvalue=IFEInpurPortDualPD, command=self.update_label)
        self.checkbutton21.grid(row=8, column=1)
        self.checkbutton22 = tk.Checkbutton(self.master, text='ALLports', variable=self.autoImageDumpIFEinputPortMask, onvalue=ALLports, command=self.update_label)
        self.checkbutton22.grid(row=9, column=1)

        # Output Port Options
        output_ports_IFE = 0x1
        output_ports_IPE = 0x2
        output_ports_BPS = 0x4
        output_ports_JPEG = 0x8
        output_ports_FDHw = 0x10
        output_ports_LRME = 0x20
        output_ports_RANSAC = 0x40
        output_ports_ChiNodes = 0x80
        output_ports_CVP = 0x100
        output_ports_TFE = 0x200
        output_ports_OPE = 0x400
        output_ports_QSAT = 0x800
        output_ports_other_nodes = 0x40000000

        self.checkbutton23 = tk.Checkbutton(self.master, text='output_ports_IFE', variable=self.autoImageDumpMask, onvalue=output_ports_IFE, command=self.update_label)
        self.checkbutton23.grid(row=2, column=2)
        self.checkbutton24 = tk.Checkbutton(self.master, text='output_ports_IPE', variable=self.autoImageDumpMask, onvalue=output_ports_IPE, command=self.update_label)
        self.checkbutton24.grid(row=3, column=2)
        self.checkbutton25 = tk.Checkbutton(self.master, text='output_ports_BPS', variable=self.autoImageDumpMask, onvalue=output_ports_BPS, command=self.update_label)
        self.checkbutton25.grid(row=4, column=2)
        self.checkbutton26 = tk.Checkbutton(self.master, text='output_ports_JPEG', variable=self.autoImageDumpMask, onvalue=output_ports_JPEG, command=self.update_label)
        self.checkbutton26.grid(row=5, column=2)
        self.checkbutton27 = tk.Checkbutton(self.master, text='output_ports_FDHw', variable=self.autoImageDumpMask, onvalue=output_ports_FDHw, command=self.update_label)
        self.checkbutton27.grid(row=6, column=2)
        self.checkbutton28 = tk.Checkbutton(self.master, text='output_ports_LRME', variable=self.autoImageDumpMask, onvalue=output_ports_LRME, command=self.update_label)
        self.checkbutton28.grid(row=7, column=2)
        self.checkbutton29 = tk.Checkbutton(self.master, text='output_ports_RANSAC', variable=self.autoImageDumpMask, onvalue=output_ports_RANSAC, command=self.update_label)
        self.checkbutton29.grid(row=8, column=2)
        self.checkbutton30 = tk.Checkbutton(self.master, text='output_ports_ChiNodes', variable=self.autoImageDumpMask, onvalue=output_ports_ChiNodes, command=self.update_label)
        self.checkbutton30.grid(row=9, column=2)
        self.checkbutton31 = tk.Checkbutton(self.master, text='output_ports_CVP', variable=self.autoImageDumpMask, onvalue=output_ports_CVP, command=self.update_label)
        self.checkbutton31.grid(row=10, column=2)
        self.checkbutton32 = tk.Checkbutton(self.master, text='output_ports_TFE', variable=self.autoImageDumpMask, onvalue=output_ports_TFE, command=self.update_label)
        self.checkbutton32.grid(row=11, column=2)
        self.checkbutton33 = tk.Checkbutton(self.master, text='output_ports_OPE', variable=self.autoImageDumpMask, onvalue=output_ports_OPE, command=self.update_label)
        self.checkbutton33.grid(row=12, column=2)
        self.checkbutton34 = tk.Checkbutton(self.master, text='output_ports_QSAT', variable=self.autoImageDumpMask, onvalue=output_ports_QSAT, command=self.update_label)
        self.checkbutton34.grid(row=13, column=2)
        self.checkbutton35 = tk.Checkbutton(self.master, text='output_ports_other nodes', variable=self.autoImageDumpMask, onvalue=output_ports_other_nodes, command=self.update_label)
        self.checkbutton35.grid(row=14, column=2)

        # IFE Output Port Options
        IFEOutputPortFull = 0x1
        IFEOutputPortDS4 = 0x2
        IFEOutputPortDS16 = 0x4
        IFEOutputPortCAMIFRaw = 0x8
        IFEOutputPortLSCRaw = 0x10
        IFEOutputPortGTMRaw = 0x20
        IFEOutputPortFD = 0x40
        IFEOutputPortPDAF = 0x80
        IFEOutputPortRDI0 = 0x100
        IFEOutputPortRDI1 = 0x200
        IFEOutputPortRDI2 = 0x400
        IFEOutputPortRDI3 = 0x800

        self.checkbutton36 = tk.Checkbutton(self.master, text='IFEOutputPortFull', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortFull, command=self.update_label)
        self.checkbutton36.grid(row=2, column=3)
        self.checkbutton37 = tk.Checkbutton(self.master, text='IFEOutputPortDS4', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortDS4, command=self.update_label)
        self.checkbutton37.grid(row=3, column=3)
        self.checkbutton38 = tk.Checkbutton(self.master, text='IFEOutputPortDS16', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortDS16, command=self.update_label)
        self.checkbutton38.grid(row=4, column=3)
        self.checkbutton39 = tk.Checkbutton(self.master, text='IFEOutputPortCAMIFRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortCAMIFRaw, command=self.update_label)
        self.checkbutton39.grid(row=5, column=3)
        self.checkbutton40 = tk.Checkbutton(self.master, text='IFEOutputPortLSCRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortLSCRaw, command=self.update_label)
        self.checkbutton40.grid(row=6, column=3)
        self.checkbutton41 = tk.Checkbutton(self.master, text='IFEOutputPortGTMRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortGTMRaw, command=self.update_label)
        self.checkbutton41.grid(row=7, column=3)
        self.checkbutton42 = tk.Checkbutton(self.master, text='IFEOutputPortFD', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortFD, command=self.update_label)
        self.checkbutton42.grid(row=8, column=3)
        self.checkbutton43 = tk.Checkbutton(self.master, text='IFEOutputPortPDAF', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortPDAF, command=self.update_label)
        self.checkbutton43.grid(row=9, column=3)
        self.checkbutton44 = tk.Checkbutton(self.master, text='IFEOutputPortRDI0', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortRDI0, command=self.update_label)
        self.checkbutton44.grid(row=10, column=3)
        self.checkbutton45 = tk.Checkbutton(self.master, text='IFEOutputPortRDI1', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortRDI1, command=self.update_label)
        self.checkbutton45.grid(row=11, column=3)
        self.checkbutton46 = tk.Checkbutton(self.master, text='IFEOutputPortRDI2', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortRDI2, command=self.update_label)
        self.checkbutton46.grid(row=12, column=3)
        self.checkbutton47 = tk.Checkbutton(self.master, text='IFEOutputPortRDI3', variable=self.autoImageDumpIFEoutputPortMask, onvalue=IFEOutputPortRDI3, command=self.update_label)
        self.checkbutton47.grid(row=13, column=3)

    def update_label(self):
        autoImageDumpMask = self.autoImageDumpMask.get()
        autoInputImageDumpMask = self.autoInputImageDumpMask.get()
        autoImageDump = self.autoImageDump.get()
        autoImageDumpIFEinputPortMask = self.autoImageDumpIFEinputPortMask.get()
        autoImageDumpIFEoutputPortMask = self.autoImageDumpIFEoutputPortMask.get()

        # perform bitwise OR operation
        result = []
        if autoImageDumpMask:
            result.append(f'autoImageDumpMask={autoImageDumpMask}')
        if autoInputImageDumpMask:
            result.append(f'autoInputImageDumpMask={autoInputImageDumpMask}')
        if autoImageDump:
            result.append(f'autoImageDump={autoImageDump}')
        if autoImageDumpIFEinputPortMask:
            result.append(f'autoImageDumpIFEinputPortMask={autoImageDumpIFEinputPortMask}')
        if autoImageDumpIFEoutputPortMask:
            result.append(f'autoImageDumpIFEoutputPortMask={autoImageDumpIFEoutputPortMask}')

        # set text to Label1
        self.label1.config(text=' '.join(result))

root = tk.Tk()
app = App(master=root)
app.mainloop()

此代码创建了一个简单的 tkinter 界面,其中包含多个复选框。

  1. 复选框: 每个复选框代表一个配置选项,并使用 IntVar 变量来跟踪其选中状态。
  2. 位运算: 当复选框被选中时,其对应的值将使用位或运算 |autoInputImageDumpMaskautoImageDumpMaskautoImageDumpIFEinputPortMaskautoImageDumpIFEoutputPortMask 变量进行运算,从而将选中的选项值累加到这些变量中。
  3. 显示结果: update_label 函数将所有非零的变量值,以等式形式拼接成字符串并显示在 Label1 中。

您可以根据需要修改代码中的选项值和变量名,并添加其他功能。

Python tkinter 界面软件:配置选项和位运算显示

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

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