Когда я пытаюсь изменить значение фокуса или сетки в пользовательском интерфейсе, я получаю сообщение об ошибке: ожидаемый целочисленный аргумент получил функцию (или что-то подобное, я не могу вспомнить точную формулировку, которую я получил в лаборатории). Таким образом, функция changevalue () не работает, потому что аргумент (например, gridlb) имеет тип «функция». Почему он имеет функцию типа и как я могу изменить его на целое число?
import visa
import ftdiwrapper as ft
import time
import tkinter as tk
root = tk.Tk()
index = 1
h = ft.FT_Open(index)
def init():
ft.FT_Write(h, 0x51)
ft.FT_Write(h, 0x5f)
def controlon():
ft.FT_Write(h, b"\x20\x01")
def changevalue(param, valuelb, valuehb):
ft.FT_Write(h, bytes([0x32, param, valuelb, valuehb]))
init()
controlon()
changevalue(0x00, 0x00, 5*10) #energy
changevalue(0x01, 0x00, 0xe4) #filament
focuslb0 = 0x00
focushb0 = 0x00
changevalue(0x03, focushb0, focuslb0) #focus
focuslb = focuslb0
focushb = focushb0
gridlb0 = 0x00
gridhb0 = 0x00
changevalue(0x02, gridlb0, gridhb0) # grid
gridlb = gridlb0
gridhb = gridhb0
def gridplus():
global gridlb, gridhb
if gridlb <= 240:
gridlb += 15
elif gridlb == 255:
gridlb = 0
gridhb += 1
#print('Grid: ', gridlb, gridhb)
changevalue(0x02, gridlb, gridhb)
tk.Label(root, text = gridlb).grid(row=1, column=4)
tk.Label(root, text = gridhb).grid(row=1, column=5)
def gridminus():
global gridlb, gridhb
if gridlb >= 15:
gridlb -= 15
elif gridlb == 0:
gridlb = 255
gridhb -= 1
#print('Grid: ', gridlb, gridhb)
changevalue(0x02, gridlb, gridhb)
tk.Label(root, text = gridlb).grid(row=1, column=4)
tk.Label(root, text = gridhb).grid(row=1, column=5)
def focusplus():
global focuslb, focushb
if focuslb <= 240:
focushb += 15
elif focuslb == 255:
focuslb = 0
focushb += 1
#print('Focus: ', focuslb, focushb)
changevalue(0x03, focuslb, focushb)
tk.Label(root, text = focuslb).grid(row=0, column=4)
tk.Label(root, text = focushb).grid(row=0, column=5)
def focusminus():
global focuslb, focushb
if focuslb >= 15:
focuslb -= 15
elif focuslb == 0:
focuslb = 255
focushb -= 1
#print('Focus: ', focuslb, focushb)
changevalue(0x03, focuslb, focushb)
tk.Label(root, text = focuslb).grid(row=0, column=4)
tk.Label(root, text = focushb).grid(row=0, column=5)
def gridhb():
global focuslb, focushb
gridhb = float(G_hb.get())
changevalue(0x03, gridlb, gridhb)
tk.Label(root, text = gridhb).grid(row=1, column=5)
def focushb():
global focuslb, focushb
focushb = float(F_hb.get())
changevalue(0x03, focuslb, focushb)
tk.Label(root, text = focushb).grid(row=0, column=5)
labelF = tk.Label(root, text = "Focus:").grid(row=0, column=0)
Button_Fplus = tk.Button(root, text = "+", command = focusplus)
Button_Fplus.grid(row=0, column=2)
Button_Fminus = tk.Button(root, text = "-", command = focusminus)
Button_Fminus.grid(row=0, column=3)
labelG = tk.Label(root, text = "Grid:")
labelG.grid(row=1, column=0)
Button_Gplus = tk.Button(root, text = "+", command = gridplus)
Button_Gplus.grid(row=1, column=2)
Button_Gminus = tk.Button(root, text = "-", command = gridminus)
Button_Gminus.grid(row=1, column=3)
F_hb = tk.Entry(root)
G_hb = tk.Entry(root)
F_hb.bind('<Return>', focushb)
G_hb.bind('<Return>', gridhb)
F_hb.grid(row=0, column=1)
G_hb.grid(row=1, column=1)
root.mainloop()