Python tkinter 界面软件:配置选项和位运算显示
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 界面,其中包含多个复选框。
- 复选框: 每个复选框代表一个配置选项,并使用
IntVar变量来跟踪其选中状态。 - 位运算: 当复选框被选中时,其对应的值将使用位或运算
|与autoInputImageDumpMask、autoImageDumpMask、autoImageDumpIFEinputPortMask或autoImageDumpIFEoutputPortMask变量进行运算,从而将选中的选项值累加到这些变量中。 - 显示结果:
update_label函数将所有非零的变量值,以等式形式拼接成字符串并显示在 Label1 中。
您可以根据需要修改代码中的选项值和变量名,并添加其他功能。
原文地址: https://www.cveoy.top/t/topic/lFwe 著作权归作者所有。请勿转载和采集!