Button-Größe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
richixd
User
Beiträge: 2
Registriert: Freitag 15. März 2024, 21:18

Hi,

da ich erst die Basics in Python kenne und ich diese wiederholen wollte und dabei anfangen wollte, GUI's zu lernen, habe ich vor, einen Taschenrechner zu programmieren.
Ich habe mir für die Größe des Fensters und die Größe der Buttons etwas aufgezeichnet, sodass ich nun weiß, was wie viele Pixel groß sein soll.
Ich habe hier mal ein kleines Skript gemacht, um das mit den Buttons zu üben:

Code: Alles auswählen

 
import tkinter as tk                                                                     # Libary

root = tk.Tk()
root.geometry("293x360")                                                         # Fenstergröße

button = tk.Button(root, text="1", width=3, height=3)            # Größe des Buttons wird angepasst
button.place(x=100, y=100)                                                      # Position des Buttons wird angepasst

root.mainloop()
Am Anfang erstelle ich das Fester. (Das sind schon die Abmessungen, die es auch bei der richtigen Anwendung sein sollen).
Dann , wenn ich den Button erstelle gibt es ja width und height. Jetzt zu meiner Frage:
Ich möchte das , wenn ich die Buttons erstelle (45x45 Pixel), ich die Größe in Pixel angeben kann. Als ich das ausprobiert habe, war es aber viel größer. Ich habe dann recherchiert und das versucht:

tk.Option_add("*TButton*font", ("TkDefaultFont", 10))

Aber diese Fehlermeldung kam: AttributeError: module 'tkinter' has no attribute 'Option_add'


Meine Frage also:
Gibt es eine Möglichkeit, mit der ich entscheiden kann, wie groß ein Button ist und zwar in Pixeln (sodass das auch auf jedem Rechner dann gleich ist, wenn ich das in eine exe Datei umwandle) und wenn ja wie geht das?

Vielen Dank im Voraus!

Richi
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@richixd: Der Wunsch ist falsch. Wie gross das dann tatsächlich ist hängt von der Bildschirmauflösung ab. Je höher die Auflösung um so kleiner sind die Schaltflächen bzw. je niedriger die Auflösung um so grösser sind sie. Und das kann soweit gehen dass das unbenutzbar wird. Und auch die Fenstergrösse sollte man nicht hart vorgeben, die ergibt sich automatisch aus dem Inhalt. Wenn man nicht `place()` verwendet. Weswegen man nicht `place()` verwendet.

Die Grösse der Buttons ergibt sich aus deren Inhalt. Der ist abhängig von der Schriftgrösse. Die Du besser auch nicht selbst vorgeben solltest, denn das macht der Benutzer des Systems. So wie er das braucht. Also nicht nicht nur wie er es mag, denn zum Beispiel für Sehbehinderte ist das keine reine Geschmacksfrage was sie sehen und benutzen können.

Für eine Taschenrechner-Tastatur eignet sich zumindest für Teile der GUI das `grid()`-Layout. Es gibt auch eine Möglichkeit das die Schaltflächen sich in der Grösse am Inhalt der grössten Taste orientieren, damit alle gleich gross sind.

Taschenrechner ist übrigens gar nicht so einfach, ausser man verwendet `eval()`, was man eher nicht machen sollte.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
richixd
User
Beiträge: 2
Registriert: Freitag 15. März 2024, 21:18

Ok vielen Dank, werde ich mir zu Herzen nehmen!
Antworten