USB 设备检查器的 Tkinter 条目
Tkinter entry for USB device checker
我有一个功能可以检查 USB 设备是否存在,returns 可以自行检查结果,还有一个 Tkinter GUI 可以接受此功能的输入。
该函数单独工作得很好,但不能与 Tkinter GUI 一起使用!(即使我将条目留空,所以该函数采用默认变量)
我尝试将输入表单更改为 int 或 float,但没有用
def check_USB(vid=0x1447,pid=0x8092):#pings usb device
logger.debug('checking USB Connection')
dev = usb.core.find(idVendor=vid, idProduct= pid)
if dev is None:
logger.debug ('ALERT our USB device is NOT connected')
else:
logger.debug('our USB device is connected')
entry_VID = Entry(second_frame, bg="white")
entry_VID.grid(row=8,column=1,padx=0,pady=5)
entry_PID = Entry(second_frame, bg="white")
entry_PID.grid(row=10,column=1,padx=0,pady=5)
check_USB(vid=int( entry_VID.get() ),pid=int( entry_PID.get() ) )
我尝试了这个相同的过程,使用了一个 ping 一个 ip 地址的函数(但是输入的 ip 地址是一个字符串)并且它工作得很好,但是使用这个脚本我总是得到设备没有连接。
错误:(0x1447 是我输入的 vid 和 0x8092 的 pid)
invalid literal for int() with base 10:'0x1447'
根据您当前的设置,check_USB(vid=entry_VID.get(),pid=entry_PID.get())
立即变为 运行。您需要等待用户填写条目。它可以是这样的:
entry_VID = Entry(second_frame, bg="white")
entry_VID.grid(row=8,column=1,padx=0,pady=5)
entry_PID = Entry(second_frame, bg="white")
entry_PID.grid(row=10,column=1,padx=0,pady=5)
def usb_func():
check_USB(vid=int(entry_VID.get(),16),
pid=int(entry_PID.get(),16))
Button(second_frame,text="Click",command=usb_func).grid(row=11,column=1)
然后您可以仅在用户按下按钮时执行该功能,或者如果需要,甚至可以进行一些验证以检查用户是否在条目中输入了正确的数字。
我有一个功能可以检查 USB 设备是否存在,returns 可以自行检查结果,还有一个 Tkinter GUI 可以接受此功能的输入。 该函数单独工作得很好,但不能与 Tkinter GUI 一起使用!(即使我将条目留空,所以该函数采用默认变量)
我尝试将输入表单更改为 int 或 float,但没有用
def check_USB(vid=0x1447,pid=0x8092):#pings usb device
logger.debug('checking USB Connection')
dev = usb.core.find(idVendor=vid, idProduct= pid)
if dev is None:
logger.debug ('ALERT our USB device is NOT connected')
else:
logger.debug('our USB device is connected')
entry_VID = Entry(second_frame, bg="white")
entry_VID.grid(row=8,column=1,padx=0,pady=5)
entry_PID = Entry(second_frame, bg="white")
entry_PID.grid(row=10,column=1,padx=0,pady=5)
check_USB(vid=int( entry_VID.get() ),pid=int( entry_PID.get() ) )
我尝试了这个相同的过程,使用了一个 ping 一个 ip 地址的函数(但是输入的 ip 地址是一个字符串)并且它工作得很好,但是使用这个脚本我总是得到设备没有连接。
错误:(0x1447 是我输入的 vid 和 0x8092 的 pid)
invalid literal for int() with base 10:'0x1447'
根据您当前的设置,check_USB(vid=entry_VID.get(),pid=entry_PID.get())
立即变为 运行。您需要等待用户填写条目。它可以是这样的:
entry_VID = Entry(second_frame, bg="white")
entry_VID.grid(row=8,column=1,padx=0,pady=5)
entry_PID = Entry(second_frame, bg="white")
entry_PID.grid(row=10,column=1,padx=0,pady=5)
def usb_func():
check_USB(vid=int(entry_VID.get(),16),
pid=int(entry_PID.get(),16))
Button(second_frame,text="Click",command=usb_func).grid(row=11,column=1)
然后您可以仅在用户按下按钮时执行该功能,或者如果需要,甚至可以进行一些验证以检查用户是否在条目中输入了正确的数字。