GUI: Probleme mit einer Klasse..

  • Hallo...

    Es geht mal wieder um die GUI meiner Maschine, im Detail: um die grafische Darstellung der Spannungen als Balken..

    Hierfür hatte meigrafd vor kurzem eine Klasse geschrieben, die allein für sich auch recht gut funktioniert..

    In der Zwischenzeit hab ich es dann geschafft das die GUI im Vollbild ausgeführt wird & da schlecht killbar auf dem Main Reiter (auch tab genannt) nen Button zum beenden hinzugefügt..

    Der Quelltext von Meigrafd:

    Der Code meiner GUI mit meigrafd's klasse:

    Und hier das Endergebnis:


    Problem 1: vom LabelFrame fehlt auf einmal das Label... da sollte eigentlich "5V" stehen..

    Problem 2: es werden keine Balken gezeichnet... Es erscheinen nur kleine waagerechte Striche nähe des oberen Rand des canvas..

    Was mach ich falsch??

    LG Tiieto

    Einmal editiert, zuletzt von Tiieto (29. Juni 2017 um 12:21)

  • Ich empfehle dir, erst mal deine ganze GUI in Klassen zu schreiben, dann kommst du auch hoffentlich vom irrwitzigen Verwenden von "global" ab.

    Dein Test unterscheidet sich zu meinem Beispiel:
    Du erstellst ein Canvas mit master=nt5v1Label, ich aber hatte den Canvas für ein Frame erzeugt master=mainFrame
    Es gibt kein "LabelFrame". Entweder es ist ein Label oder es ist ein Frame. Das sorgt schnell für Verwirrung wenn man deinen Code liest.

  • Hab den ganzen LabelFrame Kram mal eben neu geschrieben, jetzt läuft es...

    Hab jetzt nur noch das Problem das die Werte über den Balken falsch angezeigt werden...

    Zur Erklärung: da ich die verschiedenen Spannungswerte im maximalwert alle auf gleichem Niveau haben möchte, müssen die einzelnen Spannungswerte mit dem Faktor x multipliziert werden..
    Als "value" gebe ich dabei den Ursprungswert ohne die Multiplikation an. Allerdings zeigt er nur den multiplizierten wert an...

    Wie kann ich das korrigieren?

    LG..

  • Hallo...

    Nach etwas "Zwangspause" hänge ich leider immernoch an dem Problem, das die Beschriftung der Balken (Spannungen & Ströme) nicht korrekt angezeigt werden...


    Ansonsten wird alles korrekt dargestellt..

    Als beispiel die 24V Schiene:

    Die Testvariable ist auf 24.0 gesetzt. (hier wird dann später der ausgelesene Wert des Entsprechenden Pins eines MCP3208 eingesetzt)

    Code
    nt24v1 = 24.0

    Das Canvas ist 450px hoch, und die Maximal anzeigbare Spannung beträgt 28V

    Code
    canvas_1_heigh = 450

    Um den Balken entsprechend hoch zu zeichnen, verwende ich einen umrechnungsfaktor:

    Code
     factor24v = (canvas_1_height/28)

    Das einzusetzende Value:

    Code
    valueb1 = nt24v1*factor24v

    und der aufruf des Balkens:

    Code
    b1 = BarGraph(canvas=c, x=1, color="green", title=nt24v1, value=valueb1)
    b1.draw()

    Der Balken wird somit an die höhe des Canvas angepasst, was auch super funktioniert..


    Nur der Wert der Über dem Balken erscheint ist der aus der Variablen "valueb1". (24.0 * (450/28) = 385.714286)

    Jeder versuch diesen Wert zu korrigieren verändert wieder die höhe des Balkens... *heul*

    Der "title" in den die nt24v1 variable geladen wird, wird konsequent ignoriert...

    Da ich meigrafd´s klasse (siehe obige Posts) nicht wirklich verstehe, komm ich da keinen deut weiter...

    Ich bitte um Hilfe...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!