Gui mit Buttons die buttons ein und ausfahren

Fragen zu Tkinter.
Antworten
Martin Noack
User
Beiträge: 6
Registriert: Mittwoch 20. Dezember 2023, 08:54

Hallo,
Ich möchte einen Text in Code umsetzten
das ist der Text:

GUI mit:
Button (Auslöser) Name: Maus
drücken löst aus das unter dem Button: Maus 3 weitere Buttons erscheinen
button1 Name: Maus links
button2 Name: Maus rechts
button3 Name: Maus kreuz
jeder der 3 Buttons löst eine Abfolge von servos aus die sich in einem loop bewegen Anzahl der servos 6 und muss nach Auswahl bestätigt werden das man den Button benutzten will
unter dem Button Maus kommt ein Button (Auslöser) Name: Tastatur
drücken löst aus das unter dem Button: Tastatur 3 weitere Buttons erscheinen
button1 Name: Tasta. Variante a
button2 Name: Tasta. Variante b
button3 Name: Tasta. Variante c
jeder der 3 Buttons löst eine Abfolge von servos aus die sich in einem loop bewegen Anzahl der servos 6 und muss nach Auswahl bestätigt werden das man den Button benutzten will
Button (Auslöser) Name speed?
drücken löst aus das unter dem Button: speed? 4 weitere Buttons erscheinen
button1 Name: 25%
setzt die Geschwindigkeit der servos auf 25%
button2 Name: 50%
setzt die Geschwindigkeit der servos auf 50%
button3 Name: 75%
setzt die Geschwindigkeit der servos auf 75%
button4 Name: 100%
setzt die Geschwindigkeit der servos auf 100%
button1 (Auslöser) Name: Stopp!/Weiter?
drücken löst aus das dass Programm gestoppt wird und nach erneutem drücken läuft das Programm weiter
zwischen Button Stopp!/Weiter? Und Button Notfall aus sollen 10-20 Pixel platz sein
Button (Auslöser) Name: Notfall aus
drücken löst aus das dass Programm beendet wird

servos:
Auslösung bei klick Button Name: Maus links
kreisende Bewegung entgegen dem Uhrzeigersinn

Auslösung bei klick Button Name: Maus rechts
kreisende Bewegung mit dem Uhrzeigersinn

Auslösung bei klick Button Name: Maus kreuz
kreisende Bewegung entgegen dem Uhrzeigersinn

Auslösung bei klick Button Name: Tasta. Variante a
eine Bestimmte Anzahl an Tasten auf der Tastatur drücken z.B. Variante a

Auslösung bei klick Button Name: Tasta. Variante b
eine Bestimmte Anzahl an Tasten auf der Tastatur drücken z.B. Variante b

Auslösung bei klick Button Name: Tasta. Variante c
eine Bestimmte Anzahl an Tasten auf der Tastatur drücken z.B. Variante c

es wäre super wen mir Dabei jemand helfen kann eine Seite zu finden die mir erklärt wie ich das mache oder die befehle selber schreibt.
danke im voraus
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Du suchst also eine Seite, die die Befehle selber schreibt? Das wird es nicht geben.
Als erstes wäre da, ein Python-Tutorial duchzuarbeiten.
Du brauchst neben den Pythongrundlagen auch noch ein gutes Verständnis von Objektorientierung, denn ohne die Definition eigener Klassen wird das mit einer GUI nichts.
Weil Du im Hintergrund Servos ansteuern möchtest, brauchst Du zusätzlich das Wissen, wie man Threads programmiert und wie diese am besten mit einer GUI verknüpft werden.

Wenn Du das alles gelernt hast, wäre meine nächste Frage, an welchem Punkt Deiner Liste kommst Du konkret nicht weiter?

Generell ist Dein GUI-Design gewöhnungsbedürftig. Wie viele Programme kennst Du, wo beim Drücken eines Knopfes magisch weitere Knöpfe darunter erscheinen?
Für mich hört sich das nach einer Menge Drop-Down-Listen an, und einen Knopf, der "Starten" oder so heißt.
Martin Noack
User
Beiträge: 6
Registriert: Mittwoch 20. Dezember 2023, 08:54

nein wenn ich so was suchen würde nutzte ich chatgpt ich suche eine Seite oder jemanden der mir das auf tutorial Art erklärt.
und ja ich suche nach einer Art Drop-Down Liste oder Menü.
ich habe einfach Verständnis Probleme und will es verstehen für das wofür ich es brauche.
vieleicht kennt jemand den roboter arm den ich steuern will (Tinkerkit)
__deets__
User
Beiträge: 14543
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was verstehst du nicht? Was hast du probiert, und wo hat es nicht funktioniert?
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Martin Noack: Wenn da „Button“ in Verbindung mit „Name“ in der Beschreibung steht, denke ich da ist statt „Name“ eigentlich „Beschriftung“ gemeint.

Dann würde ich auch in Frage stellen da Schaltflächen zu haben die andere Schaltflächen erscheinen lassen. Was soll denn der Sinn dahinter sein? Warum soll das so gemacht werden?

Statt dieser Schaltflächen die andere erscheinen lasssen würde ich deren Beschriftungen eher für einen Rahmen um die jeweilige Gruppde von Schaltflächen verwenden und diesen Text dann nicht innerhalb der Schaltflächen ständig wiederholen. Also beispielsweise einen Rahmen mit der Beschriftung „Maus“ und die Schaltflächen da drin dann ohne diesen Begriff nur „links“, „rechts“, und „kreuz“.

Bei den Beschriftungen fällt „speed“ aus dem Rahmen, weil alles andere in der Oberfläche deutschsprachig beschriftet ist. Eventuell könnte hier auch ein `Scale` statt einzelner Schaltflächen interessant sein, wenn man dem Benutzer auch Rückmeldung darüber geben will was die aktuelle Geschwindigkeitswahl ist.

Die „Stopp!/Weiter?“-Schaltfläche sollte ein Rückmeldung geben was der aktuelle Zustand ist und nicht so uneindeutig beschriftet sein. Also beispielsweise immer nur eine dieser Beschriftungen tragen, je nach dem in welchem Zustand sich das System gerade befindet, oder auf einem Radiobutton basierend eine Schaltfläche die einen eingerasteten Zustand haben kann und nur eine Beschriftung wie „Programmlauf“ oder „Start!“ hat.

Ein Grundlagentutorial findet man beispielsweise in der Python-Dokumentation selbst.

Für GUI-Rahmenwerke empfielt es sich oft die Originaldokumentation zum Rahmenwerk als zusätzliche Quelle heran zu ziehen und die dort verwendete Programmiersprache soweit lesen zu können, dass man die API-Dokumentation und wie die auf Python abgebildet wird, versteht. Das gilt auch für Tk. Die Python-Dokumentation zum `tkinter`-Modul hat da entsprechende Links.

Man sollte die Programmlogik und die GUI sauber trennen, und ich würde mit der Programmlogik anfangen und dann da die GUI drauf setzen. Wenn die Programmlogik steht, kann man besser einschätzen und entscheiden ob man schon Threads braucht oder mit Rückrufen aus der GUI-Hauptschleife auskommt.

Das Projekt benötigt Objektorientierung, GUI, und Nebenläufigkeit — also die volle Packung an Komplexität. Das ist schon ziemlich ambitioniert für ein Anfängerprojekt. Nicht unmöglich, aber auch nicht mal eben so schnell umgesetzt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Martin Noack
User
Beiträge: 6
Registriert: Mittwoch 20. Dezember 2023, 08:54

danke das hilft mir weiter.
falls jemand noch andere möglichkeiten kennt oder weiß wie man es effizient machen kann bitte schreiben.
danke im vorraus
Antworten