Seite 1 von 1

Label versetzt - fehlerhafte Ausrichtung

Verfasst: Mittwoch 20. August 2014, 12:08
von elfriso27
Hallo,

Mache gerade meine ersten Gehversuche mit Python. Der Nachfolgende Code liest den seriellen Port und gibt dessen Inhalt in ein Label aus.
Das erste Label soll lediglich die Beschreibung für das zweite enthalten, dessen Wert permanent verändert wird.

Funktioniert auch alles soweit, außer dass das 2. Label leicht nach oben versetzt ist. Wie bekomme ich das hin, dass das Label genau auf gleicher Höhe neben dem ersten ist?

Code: Alles auswählen

# -*- coding: utf-8 -*-
from serial import *
#from Tkinter import *
import Tkinter

serialPort = "/dev/ttyACM0"
baudRate = 9600
ser = Serial(serialPort, baudRate, timeout=0, writeTimeout=0)

#mache TKinter Fenster
root = Tkinter.Tk()
root.wm_title("Reading Serial")


lbl_zuwert1=Tkinter.Label(root, text="Wert 1 beträgt: ",anchor=CENTER)
#lbl_zuwert1.pack(padx=0, pady=10, side=LEFT)
lbl_zuwert1.grid(row=0, column=0)
lbl_wert1=Tkinter.Label(root,text="Hallo")
#lbl_wert1.pack(padx=5, pady=20, side=RIGHT)
lbl_wert1.grid(row=0, column=1)

#mache SerialBuffer
serBuffer = ""

def readSerial():
    while True:
        c = ser.read()

        #wurde was gelesen?
        if len(c) == 0:
            break
        #hole Buffer außerhalb der Funktion
        global serBuffer

        #check ob char ein delimeter
        if c == '\r':
            c='' #kuebeln

        if c == '\n':
            serBuffer += "\n"

        #Schreibe Zeile oben in txt
            ##txt_1.insert('0.0', serBuffer)
            lbl_wert1.config(text=str(serBuffer))
            serBuffer = ""
        else:
            serBuffer += c

    root.after(10, readSerial) #check serial again soon
    

# after initializing serial, an arduino may need a bit of time to reset
root.after(100, readSerial)

root.mainloop()

Re: Label versetzt - fehlerhafte Ausrichtung

Verfasst: Mittwoch 20. August 2014, 14:27
von BlackJack
Kann ich nicht nachvollziehen.

Re: Label versetzt - fehlerhafte Ausrichtung

Verfasst: Mittwoch 20. August 2014, 16:55
von elfriso27

Re: Label versetzt - fehlerhafte Ausrichtung

Verfasst: Mittwoch 20. August 2014, 19:59
von Schorlem
Nun ja, die einfachst und offensichlichste Möglichkeit wäre es natürlich, die Newlines erst gar nicht zu 'serBuffer' hinzuzufügen. Ich kann jetzt nicht spontan sagen, ob du die jemals brauchen wirst.
Ansonsten änderst du den "grid"-Aufruf folgendermaßen ab:

Code: Alles auswählen

lbl_zuwert1.grid(row=0, column=0, sticky=(Tkinter.N,Tkinter.W))
Damit "klebt" das Label quasi an der oberen, linken Ecke.
Gleiches solltest du für das andere Label machen, damit beide Widgets beim Skalieren des Fensters mitskaliert werden.

Re: Label versetzt - fehlerhafte Ausrichtung

Verfasst: Donnerstag 21. August 2014, 10:18
von elfriso27
Vielen Dank! Das hat mir geholfen.