python - USB 设备检查器的 Tkinter 条目
问题描述
我有一个函数可以检查 USB 设备是否存在并自行返回结果,还有一个 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)
然后,您可以仅在用户按下按钮时执行该功能,或者甚至进行一些验证以检查用户是否在需要时在条目中输入了正确的数字。
推荐阅读
- python-3.x - 如何从 python3 中删除 S3 特定前缀生命周期
- java - 通过 Maven Invoker 执行项目会引发编译错误
- kotlin - 如何在数组中设置值的范围/切片?科特林
- .htaccess - htaccess RewriteRule 到 Wordpress 环境中的现有文件夹
- javascript - 在 laravel 中使用带有表单其他属性的 dropzone 提交图像
- c# - 表格布局面板 - 在 C# 表单应用程序中锚定
- node.js - 在nodejs中将AJAX请求转换为HTTP请求
- android - Android 唤醒锁打开
- xml - 从线性化到漂亮打印到线性化时,我可以防止记事本++删除关闭和打开 XML 标记之间的空格吗
- python - 无法在 R 闪亮的仪表板中打印 python 代码