Hallo liebe Community!
Ich bin neu bei Python und noch neuer in diesem Forum. Das ist jetzt mein erster Post hier in der Hoffnung Lösungen und Anregungen für meine Probleme zu finden.
Ich bin seit einiger Zeit dabei mein erste Programm aufzubauen und bin gerade dabei meiner Oberfläche via Notebook auf Reiter zu verteilen.
Dabei ist mir folgende Kuriosität aufgefallen:
Bei der Erstellung eines leeren Reiters hat der Reiter die standartmäßige graue Hintergrundfarbe. Sobald man ein Widget hinzufügt änder sich die Farbe auf weiß.
https://ibb.co/QmZ55kp
Das Problem ist, dass die Labelframes oder Frames die ich einfüge weiterhin den grauen Hintergrund haben.
Warum die Farbe wechselt weiß ich nicht. Welcher Befehl das ändern könnte weiß ich ebenfalls nicht. Ich habe schon alle möglichen Befehle zur Änderung des ttk Styles ausprobiert, aber das einzige was Abhilfe schafft ist, die Hintergründe aller Widgets auf "weiß" zu ändern.
Weiß jemand eventuell woran es liegen kann, dass isch die Farbe ändert und wie man das beheben kann?
Notebook - Reiter
- __blackjack__
- User
- Beiträge: 13533
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Bibo3000: Was machst Du denn da genau? Warum sind die Fenster beispielsweise so gross? Das sollten sie nicht sein wenn da (so gut wie) nix drin ist.
Code: Alles auswählen
- (void)countSheep {
unsigned int sheep = 0;
while ( ! [self isAsleep]) { ++sheep; }
}
- __blackjack__
- User
- Beiträge: 13533
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Bibo3000: Was ist ein Beispiel? Das was Du uns nicht zeigst? Ich würde ja gerne mal das Beispiel sehen. Also den Code, denn an den Bildern kann man ja nicht sehen was Du da machst, sondern nur was bei Dir das Ergebnis ist.
Code: Alles auswählen
- (void)countSheep {
unsigned int sheep = 0;
while ( ! [self isAsleep]) { ++sheep; }
}
Mit dem Bild und dem Programm wollte ich zeigen, wie sich die Reiter verändern mit und ohne Widget.
Nachfolgend der Code:
root = tk.Tk()
root.geometry("600x600")
notebook = ttk.Notebook(root)
notebook.pack()
frame1 = ttk.Frame(notebook, width=550, height=550)
frame1.pack()
frame2 = ttk.Frame(notebook, width=550, height=550)
frame2.pack()
button = tk.Button(frame1, text="Button")
button.pack()
notebook.add(frame1, text="Test 1", sticky="NW")
notebook.add(frame2, text="Test 2", sticky="NW")
root.mainloop()
Nachfolgend der Code:
root = tk.Tk()
root.geometry("600x600")
notebook = ttk.Notebook(root)
notebook.pack()
frame1 = ttk.Frame(notebook, width=550, height=550)
frame1.pack()
frame2 = ttk.Frame(notebook, width=550, height=550)
frame2.pack()
button = tk.Button(frame1, text="Button")
button.pack()
notebook.add(frame1, text="Test 1", sticky="NW")
notebook.add(frame2, text="Test 2", sticky="NW")
root.mainloop()
- __blackjack__
- User
- Beiträge: 13533
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ich kann das Problem bei mir nicht nachvollziehen. Hier sind beide Inhalte von den Reitern in gleichen, erwartbaren Farbe.
Code: Alles auswählen
- (void)countSheep {
unsigned int sheep = 0;
while ( ! [self isAsleep]) { ++sheep; }
}
- __blackjack__
- User
- Beiträge: 13533
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Genau.
Code: Alles auswählen
- (void)countSheep {
unsigned int sheep = 0;
while ( ! [self isAsleep]) { ++sheep; }
}
Wenn ich über die Kommandozeile starte sieht es genauso aus. Oder hab ich was falsch verstanden?
Edit: Ich habe es mit Visual Studio Code, dem Python IDLE und dem Start aus der Kommandozeile heraus probiert. Das Ergebnis ist immer das Gleiche.
Edit 2: Jetzt habe ich sogar mal "schnell" ne .exe (mit pyinstaller) drauß gemacht und sieht wieder genauso aus.
Edit: Ich habe es mit Visual Studio Code, dem Python IDLE und dem Start aus der Kommandozeile heraus probiert. Das Ergebnis ist immer das Gleiche.
Edit 2: Jetzt habe ich sogar mal "schnell" ne .exe (mit pyinstaller) drauß gemacht und sieht wieder genauso aus.
Okay okay, Asche über mein Haupt. Ich hab den Fehler gefunden.
Was bei mir weiß angezeigt wurde war nicht das Frame sondern "leerer" Raum. Besser kann ich es nicht beschreiben.
Wenn ich das Frame mit pack_propagate auf die Größe zwinge die iben im Code stehen, ist wieder alles grau. Vorher war das Frame so groß wie der Button und damit nicht sichtbar. Schön blöd... Naja... ^^
Was bei mir weiß angezeigt wurde war nicht das Frame sondern "leerer" Raum. Besser kann ich es nicht beschreiben.
Wenn ich das Frame mit pack_propagate auf die Größe zwinge die iben im Code stehen, ist wieder alles grau. Vorher war das Frame so groß wie der Button und damit nicht sichtbar. Schön blöd... Naja... ^^