с bash при использовании Tkinter. То, что я пытаюсь сделать, - это небольшой графический интерфейс, который выполняет функцию системного вызова.Настройка переменных с использованием Tkinter
Я хочу иметь возможность устанавливать v1, v2, v3 в виде строковых элементов, используя графический интерфейс - они предназначены для использования в функции «команда».
def system_call(step_name, cmd):
try:
subprocess.check_call(cmd, shell=True)
except subprocess.CalledProcessError as scall:
print "Script failed at %s stage - exit code was %s" % (step_name, scall.returncode)
exit()
def command(v1, v2, v3):
# Commandline string
return v1 + " " + v2 + " " + v3
Ниже вы найдете интерфейс.
# Create and name the window
root = Tk()
root.title("GUI - TEST VERSION")
# Set the variables needed for function
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
# Make text entry box
w = Label(root, text="V1")
w.pack()
text_entry = Entry(root, textvariable = v1.get())
text_entry.pack()
w = Label(root, text="V2")
w.pack()
text_entry = Entry(root, textvariable = v2.get())
text_entry.pack()
w = Label(root, text="V3")
w.pack()
text_entry = Entry(root, textvariable = v3.get())
text_entry.pack()
# Add a 'Run' button
b = Button(root, text="Run fuction", command= system_call(Command call, command(v1, v2,v3)))
b.pack()
# Call the GUI
root.mainloop()
Получение ошибки, указывающей, что строковые объекты и объекты экземпляра не могут быть помечены.
В чем конкретно ваш вопрос? Почему вы вызываете 'get', а не присваиваете сами объекты' StringVar' 'textvariable'? – jonrsharpe
'command = system_call (команда (v1, v2, v3))' Это будет _call_ 'system_call', _not_ связывает функцию как обратный вызов кнопки. –
Я хочу позвонить в системный вызов! - im получает ошибку, говоря, что объекты string и instance нельзя отбрасывать. – user3234810