我正在尝试构建一个用于与串行设备通信的gui。为此,我正在使用Tkinter。我的问题是,每次执行脚本时,只执行estCon函数和mainloop,因此gui永远不会启动。如果我在主循环之后放置了estCon函数的定义,则表示找不到estCon函数。
def estCon():
# establish connection
while True:
try:
ser = serial.Serial(port, baud, bytesize)
print('Connected.')
break
except serial.SerialException:
print('waiting for device ' + port + ' to be available.')
time.sleep(3)
starttime = time.time()
outfile = open(filename, 'a')
doprint = True
root = Tk()
estConButton = Button(root, text="Establish serial connection",
command=estCon())
estConButton.pack()
root.mainLoop()
答案 0 :(得分:3)
您需要更改此行:
estConButton = Button(root, text="Establish serial connection", command=estCon())
要:
estConButton = Button(root, text="Establish serial connection", command=estCon)
注意缺少括号()
。基本上,您需要传递对按下按钮而不是实际调用时将调用的函数的引用。