Tkinter(Python)中的值错误

时间:2018-08-09 06:24:24

标签: python tkinter

我希望你们中的一些人熟悉Python中的Tkinter。

#!/usr/bin/env

import sys
import time
import subprocess
from Tkinter import *

CDatei = subprocess.Popen("/home/pi/meinc++/Spi")
print("Hallo")

i = 0
x = 0
FunktionsWert = ""

def GetValue():
        with open("/home/pi/meinc++/BeispielDatei.txt","r") as Datei:
                for line in Datei:
                    time.sleep(0.1)
                    return line

def WithoutNull(input):
    ReturnValue = input
    while ReturnValue is None:
            ReturnValue = GetValue()
    return ReturnValue

def UebergabeWert():
    while x == 0:
        WholeString = WithoutNull(GetValue())
        StringVar, DatumVar = WholeString.strip().split(' - ')
        IntVar = [int(v) for v in StringVar.split()]
        print IntVar
        return IntVar

def UebergabeTkinter():
        x = UebergabeWert()
        print x
        x0 = x[0]
        return x0

def Warum():
        Variable.set(UebergabeTkinter())
        root.update()


try:
    root = Tk()
    Variable = IntVar()

    Label1 = Label(root, textvariable = Variable)
    Label1.pack()

    print "Hallo"
    root.after(1,Warum)
    root.mainloop()



except KeyboardInterrupt:
    CDatei.kill()

我的代码基本上是做什么的,就是用Popen调用C程序。然后,C程序将测量不同传感器的值并将其写入文本文件中。然后,Python代码从(GetValue)中的文本文件中读取数据,然后python检查是否存在Null值(WithoutNull),最后程序将字符串拆分(格式为:“ val1 val2 val3 val4-date” )的值和时间戳(UebergabeWert)

好吧,所以现在我想将所有内容都放在Tkinter窗口中,并浏览了一些教程,发现可以使用此更新标签...

def Tkinter():
            Variable.set(UebergabeTkinter())
            root.update()
try:
    root = Tk()
    Variable = IntVar()

    Label1 = Label(root, textvariable = Variable)
    Label1.pack()

    print "Hallo"
    root.after(1,Tkinter)
    root.mainloop()

到目前为止有没有?好。当我运行此代码时,值变得越来越高(低于9000,而不是800,然后突然降至0)

当我删除root.update时,值很好,但标签仅更新了2次。怎么了? 预先感谢。

编辑:“印刷品”对我来说只是跟踪过程

0 个答案:

没有答案