Tkinter Grafische oberfläche

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo zusammen,


    ich versuche mich gerade in dem Thema Grafische oberfläche


    ich versuche ensprechend deminer grafischen vorlage eine eingabefeld für mein raspberry zu bauen


    aber bei der anordnung der Objekte hab ich nur Probleme



    Mein Display ist auf 640x400 eingestellt , und ist auf ein raspberry 3b+


    wie kann ich die objekte so anordnen wie ich sie haben möchte :




    danke im vorraus

  • MCSITK Vergiss gleich wieder irgendwelche festen Grössen in Pixeln. Das macht man mit `Frame`, `grid()` und/oder `pack()`, und schaut welche Elemente sinnvollerweise ”wachsen” können sollten falls sich der Platz durch ändern der Fenstergrösse ändert.


    Als erstes würde ich klären in wie weit die Funktionalität von den optisch gleich aufgebauten Hälften (links/rechts) verallgemeinerbar ist, so dass man vielleicht eine Klasse schreiben kann, die dann für beide Hälften verwendbar ist.

    „Eat the rich — the poor are full of preservatives.“ — Rebecca ”Becky” Connor, The Connors

  • Also Grössen brauchen sich nicht zu ändern weil ich mit einbem Display von 640x400 arbeite und alles im vollbild sein soll, welches man weder minimieren noch schlieessen kann.


    Auwahlfeld 1 und textfeld 1 dienen der eingabe , auswahlfeld wählt sie sprache aus und textfeld 1 zeigt den geprochenen text an, oder man gibt es manuell ein


    Auswahlfeld2 undtextfeld dienen der ausgabe das die die ausgabe in der ausgewählten sprache ausgegeben wird, und um textfeld angezeigt wird


    also man könnte jeweils eingabe und ausgabe classifizieren , dem müsste ich damm dem eigentlichen script anpassen, welches schon fertig ist , dies soll ja nur das optische ergänzen

  • Dank der Excel-Tabelle ist es etwas einfacher, mit Grid zu arbeiten, aber man kann sich dennoch ziemlich schnell vertun.


    Hier ein Beispiel für das Layout:

    Ein bisschen Funktionalität ist vorhanden, aber kein OOP.

  • Ich persönlich kann PyQt empfehlen, das nutze ich eigentlich immer für GUIs, auch auf dem Raspberry Pi.

    Zudem gibt es auch einen grafischen Designer, der per "Drag an Drop" die Interfaces zusammen bauen lässt. Das ist vor allem für Einsteiger sehr angenehm.

    Martin Fitzpatrick betreibt mit PythonGUIs eine wundervolle Seite zum Lernen dieses Frameworks.

    Dein Problem kann man dort ganz einfach mit einem Grid Layout, oder einer Kombination von Horizontalen + Vertikalen Layouts realisieren.

    Größen und co. kannst du auch direkt alles im Designer definieren, dann passt das direkt.

  • Danke erst mal :D


    @DeaD_EyE danke für dein Script sieht schon mal gut aus , werde es mal an meinem Script einbauen


    ICh bin zwar ein Anfänger , aber ich jemend der nicht gern mit "Hello World" anfängt eine Sprache zu lernen

  • @DeaD_EyE


    Ich vesuche diese Auflistung, das in meinen vortest geklappt hat in dem Option Menue einzubinden , kannst du bei deiner Vorlage zeigen wie ich Variable Werte als Auswahlwerte angebenkann ?

    Code
     # Erste Auswahlliste
           
            self.combobox1["values"] = list(LANGUAGES.values())

    Danke im voraus

  • Hallo,


    und falls du bei der 'combobox' bleiben willst:



    Weitere Infos:

    https://docs.python.org/3/libr…obox#tkinter.ttk.Combobox


    Grüße

    Dennis

    🎧 Mein Auto springt, mein Toaster kocht, es zwickt mich im Genick. Meine Frau ist eingelocht, die Spülmaschine tickt. Meine Telefonapperat brüllt mich seit Tagen an, er ist schon lange abgestellt im Bett liegt Peter Pan. Die Uhr geht falsch, die Haustür singt, mein Spiegel schlägt zurück - Ich werde noch verrückt, was solls ich bin entzückt. Die Badewanne zieht nicht ab ihr glaubt nicht was ich seh' - Sie ist voll Himbeerengelee 🎧

  • @DeaD_EyE


  • Da fehlt der Import von `tkinter`. `LANGUAGES`, `translate_text()`, `recognize_speech()`, und `exit_program()` sind undefiniert. Und ich kann mir kaum vorstellen das die tatsächlich keine Argumente brauchen, denn das alles was da auf Modulebene existiert, also die ganze globalen Variablen, dürfen da nicht stehen. Das Hauptprogramm gehört in eine Funktion. Die heisst üblicherweise `main()`.


    Kommentare sollen dem Leser einen Mehrwert über den Code geben. Faustregel: Kommentare beschreiben nicht *was* der Code macht, denn das steht da bereits als Code, sondern warum er das macht. Sofern das nicht offensichtlich ist. Offensichtlich ist in aller Regel auch was in der Dokumentation von Python und den verwendeten Bibliotheken steht.


    Die Fenstergrösse sollte man wie schon gesagt nicht vorgeben, die ergibt sich aus dem Inhalt. Und falls man die Anwendung im Vollbild darstellen will, sollte man *das* machen, unabhängig davon wie gross der Bildschirm ist.


    Wenn es eine Konstante in `tkinter` für eine Zeichenkette mit einer festen Bedeutung als Argument gibt, sollte man diese Konstante benutzen.


    Bei `StringVar` kann man den Wert gleich beim erstellen übergeben.


    Ungetestet:

    „Eat the rich — the poor are full of preservatives.“ — Rebecca ”Becky” Connor, The Connors

  • @__blackjack__ : Da fehlt das ganze reigentliche Scripts nicht nur die Imports :). Da es hier nur um die GUI geht


    Wenn alles soweit fehlerfrei läuft werde ich das ganze auch hier zur Verfügung stellen.


    die Funktion : functools import partial , kenn ich noch nicht aber sieht intersannt aus , werd es mal mit einbauen.