Buttonfarben unter OS X

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
ChristophS
User
Beiträge: 37
Registriert: Montag 7. August 2017, 12:52

Guten Abend

Gibt es einen Weg die Buttonfarben (fg,bg) unter OS X einzustellen. Ich habe ziemlich lange gesucht. Die einzige, gefunden Antwort war, dass man das mit ttk erreichen kann, habe aber nicht verstanden wie das gehen soll. :(

Weiss jemand mehr?

Gruss Christoph
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

@ChristophS: Man kann GUI Programme schreiben, die Buttons haben und da kann man natürlich Farben wählen, wie man will. Wenn Du aber Buttonfarben von irgenwelchen Programmen einstellen willst, das geht nicht. Diese Programme stellen selber ein, wie ihre Buttons aussehen sollen.

Ich kann Dir ja einmal ein paar Buttons anbieten:

Code: Alles auswählen

# -*- coding: utf-8 -*-

try:
    import tkinter as tk
except ImportError:
    import Tkinter as tk

class Application(tk.Tk):

    def __init__(self,**kwargs):
        tk.Tk.__init__(self,**kwargs)
        # widget definitions ===================================
        self.button_blau = tk.Button(self,text='blauer Button', fg='white', bg='blue')
        self.button_gelb = tk.Button(self,text='gelber Button', bg='yellow')
        self.button_gruen = tk.Button(self,text='grüner Button', fg='white', bg='green')
        self.button_rot = tk.Button(self,text='roter Button', fg='white', bg='red')
        self.button_blau.pack(fill='x')
        self.button_gelb.pack(fill='x')
        self.button_gruen.pack(fill='x')
        self.button_rot.pack(fill='x')

if __name__ == '__main__':
    Application().mainloop()
Wahrscheinlich nicht, was Du willst oder?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Alfons Mittelmeyer: das funktioniert aber unter OS X nicht.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Sirius3 hat geschrieben:@Alfons Mittelmeyer: das funktioniert aber unter OS X nicht.
Hab es gerade bei stackoverflow gelesen. Das soll aber gehen:

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

# background="..." doesn't work...
ttk.Style().configure('green/black.TLabel', foreground='green', background='black')
ttk.Style().configure('green/black.TButton', foreground='green', background='black')

label = ttk.Label(root, text='I am a ttk.Label with text!', style='green/black.TLabel')
label.pack()

button = ttk.Button(root, text='Click Me!', style='green/black.TButton')
button.pack()

root.mainloop()
Quelle: https://stackoverflow.com/questions/152 ... -mac-os%3C

Aber nur der foreground geht, der background auch nicht.

Mit highlightbackground soll in tkinter etwas gehen - aber nicht ttk. Ansonsten bleibt nur Button Klick Animation durch einen Label simulieren.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Und wie sieht es aus mit gtk3+ oder qt5?
ChristophS
User
Beiträge: 37
Registriert: Montag 7. August 2017, 12:52

Vielen Dank für die Antworten.

@Alphons: Was meinst Du mit qtk3 und qt5?
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Die erwähnten sind andere GUI-Toolkits.
Du könntest zusätzlich einmal schauen, wie sich diese Tipps umsetzen lassen:

https://stackoverflow.com/questions/183 ... age-border
ChristophS
User
Beiträge: 37
Registriert: Montag 7. August 2017, 12:52

Danke, ich sehe mir das an.

Christoph
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du unter OSX entwickelst solltest du dir ggf pyobjc anschauen. Damit kann man native GUIs bauen, die sehen immer noch am besten aus.
Antworten