以下是使用 Python tkinter 库构建的界面软件代码,用于配置图像数据输出选项,包括自动图像转储、输入/输出端口选择等。

import tkinter as tk

class App(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        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.create_widgets()
    
    def create_widgets(self):
        # Label1
        self.label1 = tk.Label(self.master, text='')
        self.label1.grid(row=0, column=0, columnspan=5)
        
        # Checkbuttons for autoImageDump and dumpInputatOutput
        self.autoImageDumpCB = tk.Checkbutton(self.master, text='autoImageDump', variable=self.autoImageDump, onvalue=1, offvalue=0)
        self.autoImageDumpCB.grid(row=1, column=0, sticky='w')
        self.dumpInputatOutputCB = tk.Checkbutton(self.master, text='dumpInputatOutput', variable=self.dumpInputatOutput, onvalue=1, offvalue=0)
        self.dumpInputatOutputCB.grid(row=1, column=1, sticky='w')
        
        # Checkbuttons for autoInputImageDumpMask
        tk.Label(self.master, text='autoInputImageDumpMask').grid(row=2, column=0, sticky='w')
        self.input_ports_IFE_CB = tk.Checkbutton(self.master, text='input_ports_IFE', variable=self.autoInputImageDumpMask, onvalue=0x1, offvalue=0)
        self.input_ports_IFE_CB.grid(row=3, column=0, sticky='w')
        self.input_ports_IPE_CB = tk.Checkbutton(self.master, text='input_ports_IPE', variable=self.autoInputImageDumpMask, onvalue=0x2, offvalue=0)
        self.input_ports_IPE_CB.grid(row=4, column=0, sticky='w')
        self.input_ports_BPS_CB = tk.Checkbutton(self.master, text='input_ports_BPS', variable=self.autoInputImageDumpMask, onvalue=0x4, offvalue=0)
        self.input_ports_BPS_CB.grid(row=5, column=0, sticky='w')
        self.input_ports_JPEG_CB = tk.Checkbutton(self.master, text='input_ports_JPEG', variable=self.autoInputImageDumpMask, onvalue=0x8, offvalue=0)
        self.input_ports_JPEG_CB.grid(row=6, column=0, sticky='w')
        self.input_ports_FDHw_CB = tk.Checkbutton(self.master, text='input_ports_FDHw', variable=self.autoInputImageDumpMask, onvalue=0x10, offvalue=0)
        self.input_ports_FDHw_CB.grid(row=7, column=0, sticky='w')
        self.input_ports_LRME_CB = tk.Checkbutton(self.master, text='input_ports_LRME', variable=self.autoInputImageDumpMask, onvalue=0x20, offvalue=0)
        self.input_ports_LRME_CB.grid(row=8, column=0, sticky='w')
        self.input_ports_RANSAC_CB = tk.Checkbutton(self.master, text='input_ports_RANSAC', variable=self.autoInputImageDumpMask, onvalue=0x40, offvalue=0)
        self.input_ports_RANSAC_CB.grid(row=9, column=0, sticky='w')
        self.input_ports_ChiNodes_CB = tk.Checkbutton(self.master, text='input_ports_ChiNodes', variable=self.autoInputImageDumpMask, onvalue=0x80, offvalue=0)
        self.input_ports_ChiNodes_CB.grid(row=10, column=0, sticky='w')
        self.input_ports_CVP_CB = tk.Checkbutton(self.master, text='input_ports_CVP', variable=self.autoInputImageDumpMask, onvalue=0x100, offvalue=0)
        self.input_ports_CVP_CB.grid(row=11, column=0, sticky='w')
        self.input_ports_OPE_CB = tk.Checkbutton(self.master, text='input_ports_OPE', variable=self.autoInputImageDumpMask, onvalue=0x400, offvalue=0)
        self.input_ports_OPE_CB.grid(row=12, column=0, sticky='w')
        self.input_ports_QSAT_CB = tk.Checkbutton(self.master, text='input_ports_QSAT', variable=self.autoInputImageDumpMask, onvalue=0x800, offvalue=0)
        self.input_ports_QSAT_CB.grid(row=13, column=0, sticky='w')
        self.input_ports_others_nodes_CB = tk.Checkbutton(self.master, text='input_ports_others_nodes', variable=self.autoInputImageDumpMask, onvalue=0x40000000, offvalue=0)
        self.input_ports_others_nodes_CB.grid(row=14, column=0, sticky='w')
        
        # Checkbuttons for autoImageDumpMask
        tk.Label(self.master, text='autoImageDumpMask').grid(row=2, column=1, sticky='w')
        self.output_ports_IFE_CB = tk.Checkbutton(self.master, text='output_ports_IFE', variable=self.autoImageDumpMask, onvalue=0x1, offvalue=0)
        self.output_ports_IFE_CB.grid(row=3, column=1, sticky='w')
        self.output_ports_IPE_CB = tk.Checkbutton(self.master, text='output_ports_IPE', variable=self.autoImageDumpMask, onvalue=0x2, offvalue=0)
        self.output_ports_IPE_CB.grid(row=4, column=1, sticky='w')
        self.output_ports_BPS_CB = tk.Checkbutton(self.master, text='output_ports_BPS', variable=self.autoImageDumpMask, onvalue=0x4, offvalue=0)
        self.output_ports_BPS_CB.grid(row=5, column=1, sticky='w')
        self.output_ports_JPEG_CB = tk.Checkbutton(self.master, text='output_ports_JPEG', variable=self.autoImageDumpMask, onvalue=0x8, offvalue=0)
        self.output_ports_JPEG_CB.grid(row=6, column=1, sticky='w')
        self.output_ports_FDHw_CB = tk.Checkbutton(self.master, text='output_ports_FDHw', variable=self.autoImageDumpMask, onvalue=0x10, offvalue=0)
        self.output_ports_FDHw_CB.grid(row=7, column=1, sticky='w')
        self.output_ports_LRME_CB = tk.Checkbutton(self.master, text='output_ports_LRME', variable=self.autoImageDumpMask, onvalue=0x20, offvalue=0)
        self.output_ports_LRME_CB.grid(row=8, column=1, sticky='w')
        self.output_ports_RANSAC_CB = tk.Checkbutton(self.master, text='output_ports_RANSAC', variable=self.autoImageDumpMask, onvalue=0x40, offvalue=0)
        self.output_ports_RANSAC_CB.grid(row=9, column=1, sticky='w')
        self.output_ports_ChiNodes_CB = tk.Checkbutton(self.master, text='output_ports_ChiNodes', variable=self.autoImageDumpMask, onvalue=0x80, offvalue=0)
        self.output_ports_ChiNodes_CB.grid(row=10, column=1, sticky='w')
        self.output_ports_CVP_CB = tk.Checkbutton(self.master, text='output_ports_CVP', variable=self.autoImageDumpMask, onvalue=0x100, offvalue=0)
        self.output_ports_CVP_CB.grid(row=11, column=1, sticky='w')
        self.output_ports_TFE_CB = tk.Checkbutton(self.master, text='output_ports_TFE', variable=self.autoImageDumpMask, onvalue=0x200, offvalue=0)
        self.output_ports_TFE_CB.grid(row=12, column=1, sticky='w')
        self.output_ports_OPE_CB = tk.Checkbutton(self.master, text='output_ports_OPE', variable=self.autoImageDumpMask, onvalue=0x400, offvalue=0)
        self.output_ports_OPE_CB.grid(row=13, column=1, sticky='w')
        self.output_ports_QSAT_CB = tk.Checkbutton(self.master, text='output_ports_QSAT', variable=self.autoImageDumpMask, onvalue=0x800, offvalue=0)
        self.output_ports_QSAT_CB.grid(row=14, column=1, sticky='w')
        self.output_ports_others_nodes_CB = tk.Checkbutton(self.master, text='output_ports_others_nodes', variable=self.autoImageDumpMask, onvalue=0x40000000, offvalue=0)
        self.output_ports_others_nodes_CB.grid(row=15, column=1, sticky='w')
        
        # Checkbuttons for autoImageDumpIFEinputPortMask
        tk.Label(self.master, text='autoImageDumpIFEinputPortMask').grid(row=2, column=2, sticky='w')
        self.IFEInputPortCSIDTPG_CB = tk.Checkbutton(self.master, text='IFEInputPortCSIDTPG', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x1, offvalue=0)
        self.IFEInputPortCSIDTPG_CB.grid(row=3, column=2, sticky='w')
        self.IFEInputPortCAMIFTPG_CB = tk.Checkbutton(self.master, text='IFEInputPortCAMIFTPG', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x2, offvalue=0)
        self.IFEInputPortCAMIFTPG_CB.grid(row=4, column=2, sticky='w')
        self.IFEInputPortSensor_CB = tk.Checkbutton(self.master, text='IFEInputPortSensor', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x4, offvalue=0)
        self.IFEInputPortSensor_CB.grid(row=5, column=2, sticky='w')
        self.IFEInputPortRDI0_CB = tk.Checkbutton(self.master, text='IFEInputPortRDI0', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x8, offvalue=0)
        self.IFEInputPortRDI0_CB.grid(row=6, column=2, sticky='w')
        self.IFEInputPortRDI1_CB = tk.Checkbutton(self.master, text='IFEInputPortRDI1', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x10, offvalue=0)
        self.IFEInputPortRDI1_CB.grid(row=7, column=2, sticky='w')
        self.IFEInputPortRDI2_CB = tk.Checkbutton(self.master, text='IFEInputPortRDI2', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x20, offvalue=0)
        self.IFEInputPortRDI2_CB.grid(row=8, column=2, sticky='w')
        self.IFEInpurPortDualPD_CB = tk.Checkbutton(self.master, text='IFEInpurPortDualPD', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x40, offvalue=0)
        self.IFEInpurPortDualPD_CB.grid(row=9, column=2, sticky='w')
        self.ALLports_CB = tk.Checkbutton(self.master, text='ALLports', variable=self.autoImageDumpIFEinputPortMask, onvalue=0x7F, offvalue=0)
        self.ALLports_CB.grid(row=10, column=2, sticky='w')
        
        # Checkbuttons for autoImageDumpIFEoutputPortMask
        tk.Label(self.master, text='autoImageDumpIFEoutputPortMask').grid(row=2, column=3, sticky='w')
        self.IFEOutputPortFull_CB = tk.Checkbutton(self.master, text='IFEOutputPortFull', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x1, offvalue=0)
        self.IFEOutputPortFull_CB.grid(row=3, column=3, sticky='w')
        self.IFEOutputPortDS4_CB = tk.Checkbutton(self.master, text='IFEOutputPortDS4', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x2, offvalue=0)
        self.IFEOutputPortDS4_CB.grid(row=4, column=3, sticky='w')
        self.IFEOutputPortDS16_CB = tk.Checkbutton(self.master, text='IFEOutputPortDS16', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x4, offvalue=0)
        self.IFEOutputPortDS16_CB.grid(row=5, column=3, sticky='w')
        self.IFEOutputPortCAMIFRaw_CB = tk.Checkbutton(self.master, text='IFEOutputPortCAMIFRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x8, offvalue=0)
        self.IFEOutputPortCAMIFRaw_CB.grid(row=6, column=3, sticky='w')
        self.IFEOutputPortLSCRaw_CB = tk.Checkbutton(self.master, text='IFEOutputPortLSCRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x10, offvalue=0)
        self.IFEOutputPortLSCRaw_CB.grid(row=7, column=3, sticky='w')
        self.IFEOutputPortGTMRaw_CB = tk.Checkbutton(self.master, text='IFEOutputPortGTMRaw', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x20, offvalue=0)
        self.IFEOutputPortGTMRaw_CB.grid(row=8, column=3, sticky='w')
        self.IFEOutputPortFD_CB = tk.Checkbutton(self.master, text='IFEOutputPortFD', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x40, offvalue=0)
        self.IFEOutputPortFD_CB.grid(row=9, column=3, sticky='w')
        self.IFEOutputPortPDAF_CB = tk.Checkbutton(self.master, text='IFEOutputPortPDAF', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x80, offvalue=0)
        self.IFEOutputPortPDAF_CB.grid(row=10, column=3, sticky='w')
        self.IFEOutputPortRDI0_CB = tk.Checkbutton(self.master, text='IFEOutputPortRDI0', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x100, offvalue=0)
        self.IFEOutputPortRDI0_CB.grid(row=11, column=3, sticky='w')
        self.IFEOutputPortRDI1_CB = tk.Checkbutton(self.master, text='IFEOutputPortRDI1', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x200, offvalue=0)
        self.IFEOutputPortRDI1_CB.grid(row=12, column=3, sticky='w')
        self.IFEOutputPortRDI2_CB = tk.Checkbutton(self.master, text='IFEOutputPortRDI2', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x400, offvalue=0)
        self.IFEOutputPortRDI2_CB.grid(row=13, column=3, sticky='w')
        self.IFEOutputPortRDI3_CB = tk.Checkbutton(self.master, text='IFEOutputPortRDI3', variable=self.autoImageDumpIFEoutputPortMask, onvalue=0x800, offvalue=0)
        self.IFEOutputPortRDI3_CB.grid(row=14, column=3, sticky='w')
        
        # Update Label1
        self.update_label()
        
        # Bind checkbutton commands to update Label1
        self.autoImageDumpCB.command(self.update_label)
        self.dumpInputatOutputCB.command(self.update_label)
        self.input_ports_IFE_CB.command(self.update_label)
        self.input_ports_IPE_CB.command(self.update_label)
        self.input_ports_BPS_CB.command(self.update_label)
        self.input_ports_JPEG_CB.command(self.update_label)
        self.input_ports_FDHw_CB.command(self.update_label)
        self.input_ports_LRME_CB.command(self.update_label)
        self.input_ports_RANSAC_CB.command(self.update_label)
        self.input_ports_ChiNodes_CB.command(self.update_label)
        self.input_ports_CVP_CB.command(self.update_label)
        self.input_ports_OPE_CB.command(self.update_label)
        self.input_ports_QSAT_CB.command(self.update_label)
        self.input_ports_others_nodes_CB.command(self.update_label)
        self.output_ports_IFE_CB.command(self.update_label)
        self.output_ports_IPE_CB.command(self.update_label)
        self.output_ports_BPS_CB.command(self.update_label)
        self.output_ports_JPEG_CB.command(self.update_label)
        self.output_ports_FDHw_CB.command(self.update_label)
        self.output_ports_LRME_CB.command(self.update_label)
        self.output_ports_RANSAC_CB.command(self.update_label)
        self.output_ports_ChiNodes_CB.command(self.update_label)
        self.output_ports_CVP_CB.command(self.update_label)
        self.output_ports_TFE_CB.command(self.update_label)
        self.output_ports_OPE_CB.command(self.update_label)
        self.output_ports_QSAT_CB.command(self.update_label)
        self.output_ports_others_nodes_CB.command(self.update_label)
        self.IFEInputPortCSIDTPG_CB.command(self.update_label)
        self.IFEInputPortCAMIFTPG_CB.command(self.update_label)
        self.IFEInputPortSensor_CB.command(self.update_label)
        self.IFEInputPortRDI0_CB.command(self.update_label)
        self.IFEInputPortRDI1_CB.command(self.update_label)
        self.IFEInputPortRDI2_CB.command(self.update_label)
        self.IFEInpurPortDualPD_CB.command(self.update_label)
        self.ALLports_CB.command(self.update_label)
        self.IFEOutputPortFull_CB.command(self.update_label)
        self.IFEOutputPortDS4_CB.command(self.update_label)
        self.IFEOutputPortDS16_CB.command(self.update_label)
        self.IFEOutputPortCAMIFRaw_CB.command(self.update_label)
        self.IFEOutputPortLSCRaw_CB.command(self.update_label)
        self.IFEOutputPortGTMRaw_CB.command(self.update_label)
        self.IFEOutputPortFD_CB.command(self.update_label)
        self.IFEOutputPortPDAF_CB.command(self.update_label)
        self.IFEOutputPortRDI0_CB.command(self.update_label)
        self.IFEOutputPortRDI1_CB.command(self.update_label)
        self.IFEOutputPortRDI2_CB.command(self.update_label)
        self.IFEOutputPortRDI3_CB.command(self.update_label)
    
    def update_label(self):
        text = []
        if self.autoImageDump.get() != 0:
            text.append(f'autoImageDump={self.autoImageDump.get()}')
        if self.dumpInputatOutput.get() != 0:
            text.append(f'dumpInputatOutput={self.dumpInputatOutput.get()}')
        if self.autoInputImageDumpMask.get() != 0:
            text.append(f'autoInputImageDumpMask={self.autoInputImageDumpMask.get()}')
        if self.autoImageDumpMask.get() != 0:
            text.append(f'autoImageDumpMask={self.autoImageDumpMask.get()}')
        if self.autoImageDumpIFEinputPortMask.get() != 0:
            text.append(f'autoImageDumpIFEinputPortMask={self.autoImageDumpIFEinputPortMask.get()}')
        if self.autoImageDumpIFEoutputPortMask.get() != 0:
            text.append(f'autoImageDumpIFEoutputPortMask={self.autoImageDumpIFEoutputPortMask.get()}')
        self.label1.config(text=' '.join(text))

# Create the main window
root = tk.Tk()
root.title('图像数据输出配置')

# Create the application
app = App(master=root)

# Pack the application
app.pack()

# Start the event loop
root.mainloop()

该代码创建了一个简单的 GUI,包含以下部分:

  • 一个文本显示框 Label1,用于显示配置选项的值。
  • 两个 Checkbutton 用于控制 autoImageDumpdumpInputatOutput 选项,选中则对应变量值设置为 1,否则设置为 0。
  • 多个 Checkbutton 用于选择不同的端口,选中则对应变量值进行位或运算。
  • Label1 会实时更新,显示当前配置选项的值。

该 GUI 可以帮助用户方便地配置图像数据输出选项。

说明:

  • 代码中使用了 tk.IntVar() 类型变量来存储 Checkbutton 的状态。
  • onvalueoffvalue 属性用于设置选中和未选中时的值。
  • command 属性用于绑定更新 Label1 的函数。
  • grid() 方法用于布局控件。
  • config() 方法用于更改控件属性。

该代码可以作为构建更复杂图像数据输出配置界面的基础。可以通过添加更多功能,例如下拉菜单、输入框、按钮等,以满足不同的需求。

Python tkinter 界面软件 - 配置图像数据输出选项

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

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