Farbe des Scrollbars bei ScrolledText

Fragen zu Tkinter.
Antworten
Pythino
User
Beiträge: 41
Registriert: Montag 12. April 2004, 10:39
Kontaktdaten:

Wie kann ich die Farbe des Scrollbars eines Scrolledtexts ändern?
Leider scheint es recht neu zu sein, auf jeden Fall habe ich für ScrolledText noch keine genauere Beschreibung gefunden.

St = ScrolledText(bg = 'red', fg = 'blue', font = 'arial 20' .... 'Farbe des Scrollbars (?) )

Wäre sehr nett, wenn mir jemand helfen könnte!
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Ohne jetzt sagen zu wollen, es ist so, aber ich glaube das geht nicht so einfach per Option... ich hab es nicht probiert, aber mir scheint keine der folgenden Optionen dafür zuständig zu sein:

Code: Alles auswählen

activebackground, activerelief,
background, bd, bg, borderwidth, command, cursor,
elementborderwidth, highlightbackground,
highlightcolor, highlightthickness, jump, orient,
relief, repeatdelay, repeatinterval, takefocus,
troughcolor, width
Du kannst es natürlich probieren, vielleicht lieg ich falsch. :wink: Nur ansonsten wird es wohl nur über selber basteln gehen.

Milan
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Pythino
Hier ist etwas zum ausprobieren:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
from Tkinter import *

def ende():
	sys.exit(0)

# Hauptfenster
hauptfenster = Tk()

width  = 400
height = 80
hauptfenster.wm_geometry("%dx%d" % (width,height))
hauptfenster.wm_title('Colored Scrollbar')

hauptfenster.tk_focusFollowsMouse()

# Rahmen für Scrollbar & Button
frame = Frame(hauptfenster,relief=RAISED,bd =2,bg='gray')
frame.pack(fill=BOTH,expand=TRUE)

# Scrollbar
scb = Scrollbar(frame,
				orient              = HORIZONTAL,
				relief              = RAISED,
				bg                  = 'lightsteelblue',
				bd                  = 2,
				elementborderwidth  = 1,
				troughcolor         = 'steelblue3',
				activebackground    = 'khaki',
				highlightcolor      = 'red',
				highlightbackground = frame['bg'],
				takefocus           = TRUE,
				cursor              = 'hand1',
				width               = 20,
				)
scb.pack(fill=X,pady=4,padx=4)

# Button Beenden
bende = Button(frame,
				text                = 'Ende',
				fg                  = 'darkgreen',
				command             = ende,
				highlightcolor      = 'red',
				highlightbackground = frame['bg'],
				cursor              = 'hand1',
				)
bende.pack(side=BOTTOM,pady=4)

hauptfenster.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Pythino
User
Beiträge: 41
Registriert: Montag 12. April 2004, 10:39
Kontaktdaten:

Ist mir auch schon aufgefallen, Milan diese Optionen funktionieren bei ScrolledText eben nicht! Ausprobiert hätte ich sie schon...

Danke wuf, leider ist keine Farbänderung zu sehen, obwohl es nicht einmal einen Fehler gibt.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Pythino

Mit was für einem Betriebsystem arbeitest du?
Windows, Linux, Mac

Was sind die Versionen von deiner
Python- bzw. Tkinter-Installationen?

Hast du auch Schwierigkeiten mit der Farbgebung
bei anderen Tk-Widgets? Oder ist die Scrollbar
das einzige Widgets das Probleme macht?

Oder hast du eventuell Probleme mit deinem Monitor?

Kann mir nicht vorstellen wieso das nich klappen
sollte.

Gruss wuf :wink:
Take it easy Mates!
Pythino
User
Beiträge: 41
Registriert: Montag 12. April 2004, 10:39
Kontaktdaten:

Windows, Linux, Mac

Was sind die Versionen von deiner
Python- bzw. Tkinter-Installationen?
WinXP, Python 2.3
Hast du auch Schwierigkeiten mit der Farbgebung
bei anderen Tk-Widgets? Oder ist die Scrollbar
das einzige Widgets das Probleme macht?
Bisher lief alles glatt und zwar mit allen Widgets.

Mein Monitor ist zwar schon etwas älter, aber Farben kann er schon noch unterscheiden. Vorallem wieso sollte er nur beim Scrollbar Probleme haben, und nirgendwo anders nicht?

Funktioniert es bei dir einwandfrei?
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Pythino

Danke für deine Rückantwort.

Ich habe mein Skript unter Win2000 ausgetestet.
Es scheint effektiv so zu sein, dass Win-Betrieb-
systeme es nicht zulassen, eine blaue Scrollbar
darstellen zu können, welches unter Linux-SuSE 9.0
problemlos machbar ist. Vielleicht könnte es auch ein
Bug im Tk-GUI für Windows sein. Aber ich glaube
das erste ist der Fall, da ich unter Windows noch
nie eine Scrollbar gesehen habe, die eine andere
Farbe aufwies als das graue MS-Standardfarbgemisch.
Eine Scrollbar scheint somit ein Systemkomponent zu
sein, welcher sich nicht umfärben lässt. Interessanter
weise kann aber die Hindergrundfarbe ein Schaltfläche
(Button) problemlos geändert werden.

OK! Pythino besten Dank für deinen lehrreichen Tipp!
Ich arbeite schon länger unter Linux.

Gruss wuf :wink:
Take it easy Mates!
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

wuf hat geschrieben:... da ich unter Windows noch nie eine Scrollbar gesehen habe, die eine andere Farbe aufwies als das graue MS-Standardfarbgemisch.
Hi. Sofort ein Wiederspruch von mir :wink: . Ich hab es schon in zwei Varianten anders gesehen: bei XP, wenn man das Design umstellt und in IE/Opera bei Anwendung von CSS Stylesheets. Allerdings kannst du gut recht haben, dass das für die Tk-Bibliothek zutrifft, denn bei mir geht es unter W2k auch nicht.

Milan
Antworten