2015-07-10 2 views
-2

Я написал код для чтения аналогового значения из моего arduino и проверил результаты в простом приложении Python, но когда я нажал кнопку «начать» в своем приложении, появилась ошибка: Исключение в обратном вызове Tkinter Traceback (самый последний вызов последнего)Исключение в обратном вызове Tkinter

и компилятор находится ошибку в этом instraction: analoglabel.config (текст = ул (pin.read()))

жаль, что я coudn't заполнить все сообщение об ошибке

и это мой код:

import pyfirmata 
from pyfirmata import util 
import Tkinter 
from time import sleep 

def press(): 
    it = util.Iterator(board) 
    it.start() 
    while True: 
    if flag.get(): 
     analoglabel.config(text=str(pin.read())) 
     analoglabel.update_idletasks() 
     root.update() 
    else: 
     break 
    board.exit() 
    root.destroy() 

def exit_command(): 
flag.set(False) 

port = '/dev/ttyACM0' 
board = pyfirmata.Arduino(port) 
sleep(5) 
pin = board.get_pin('a:0:i') 

root = Tkinter.Tk() 
root.title("Analog read by hamzawi") 
root.minsize(300, 50) 

startbutton = Tkinter.Button(root, 
          text="START", 
          command=press) 
startbutton.grid(column=1, row=2) 

exitbutton = Tkinter.Button(root, 
         text="EXIT", 
         command=exit_command) 
exitbutton.grid(column=2, row=2) 

label = Tkinter.Label(root, 
        text="The value is: ") 
label.grid(column=1, row=1) 

analoglabel = Tkinter.Label(root, text=" ") 
analoglabel.grid(column=2, row=1) 

flag = Tkinter.BooleanVar() 
flag.set(True) 

root.mainloop() 

, пожалуйста, мне нужна помощь! и спасибо большое

+1

Добро пожаловать в StackOverflow. Пожалуйста, найдите время, чтобы прочитать страницу справки, особенно разделы с названием [«Какие темы можно задать здесь?»] (Http://stackoverflow.com/help/on-topic) и [«Какие типы вопросов я должен не спрашивать? "] (http://stackoverflow.com/help/dont-ask). И что еще более важно, прочитайте [контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/q/156810/204922). Вы также можете узнать о [Минимальных, Полных и Подтверждаемых примерах] (http://stackoverflow.com/help/mcve). –

+0

Вы должны сообщить нам фактическую ошибку, чтобы мы могли вам помочь. –

+0

вот часть 1, потому что она длинная: Исключение в обратном вызове Tkinter Traceback (последний последний звонок): Файл «/usr/lib/python2.7/lib-tk/Tkinter.py», строка 1489, в __call__ return self .func (* args) Файл «/home/hamzawi/Documents/Python_projects/potentioPython/pot.py», строка 13, в прессе analoglabel.config (текст = str (val)) –

ответ

-3
from tkinter import * 

import sys 

import tkinter 

from time import sleep 

import pyfirmata # not in wondows 

from pyfirmata import util # not in wondows 

def press(): 

    it = util.Iterator(board) 

    it.start() 

    while True: 

    if flag.get(): 

     analoglabel.config(text=str(pin.read())) 

     analoglabel.update_idletasks() 

     root.update() 

    else: 

     break 

    board.exit() 

    root.destroy() 

def exit_command(): 

flag.set(False) 

port = '/dev/ttyACM0' 

board = pyfirmata.Arduino(port) # not in wondows 

sleep(5) 

pin = board.get_pin('a:0:i') # not in wondows 

root = tkinter.Tk() 

root.title("Analog read by hamzawi") 

root.minsize(300, 50) 

start_button = tkinter.Button(root, text='start', command=press) 

start_button.grid(column=1, row=2) 

exit_button = tkinter.Button(root, text="EXIT", command=exit_command) 

exit_button.grid(column=2, row=2) 

label = tkinter.Label(root, 

        text="The value is: ") 

label.grid(column=1, row=1) 

analoglabel = tkinter.Label(root, text=" ") 

analoglabel.grid(column=2, row=1) 

flag = tkinter.BooleanVar() 

flag.set(True) 

root.mainloop() 
+0

Пожалуйста, рассмотрите возможность редактирования сообщения, чтобы добавить больше объяснений о том, что делает ваш код и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. Также обратите внимание на переформатирование вашего кода, похоже, что отступы могут быть отключены, но также есть много ненужных пустых строк. – SuperBiasedMan

0

Первый раз через вашу петлю все хорошо. Затем вы уничтожаете корневое окно. В следующий раз через цикл вы попытаетесь настроить виджет метки, но он был уничтожен.

Вы действительно хотите удалить корневое окно внутри своей петли?

 Смежные вопросы

  • Нет связанных вопросов^_^