难以在Python中的struct.pack中传递整数变量

时间:2016-07-11 05:22:41

标签: python tkinter

我正在尝试打包两个整数变量,并使用Python中的struct.pack将它们写入串口。变量被定义为整数变量,但我不断收到以下错误:' struct.error:required参数不是整数'

我成功地打包了实际数字,而不是变量。

我的代码是

window.location.replace("http://localhost/login/login.php"); 

我使用我在Tkinter中构建的一系列滑块来分配整数值,而不是调用命令:

var1 = IntVar()
var2 = IntVar()

我确定我遗漏了一些简单的东西,但我似乎甚至无法强制变量成为Int()或等效的整数。

非常感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:1)

IntVar()不是整数 - 是一个Tkinter对象,用于在观察者的值发生变化时通知他们。

要在struct pack中使用它,您需要检索基础原语。     struct.pack('!BB',var1.get(),var2.get())

.get() method in docs (emphasis mine):

  

get方法以Python的形式返回变量的当前值   宾语。对于BooleanVar变量,返回值为0表示false,   和1为真。对于DoubleVar变量,返回的值为a   Python浮动。 对于IntVar,它是一个整数。对于StringVar,它也是   ASCII字符串或Unicode字符串,具体取决于内容。

答案 1 :(得分:-1)

ser.write(struct.pack('!BB',var1.get(),var2.get()) 

我认为至少......也许它只是var1(),var2() ...它已经有一段时间了,因为我搞砸了tkinter