2016-12-12 4 views
0

Ich habe in der Lage, die Hintergrundfarbe des gesamten Fensters und der spezifischen Etiketten durch dies eine einfache Art und Weise dortPython Tkinter, bestimmte Zeilenhintergrundfarbe ändern?

master.configure(background = 'SteelBlue1') 
titlelabel = Tkinter.Label(master, text="my Title", fg = "blue4", bg = "gray80").grid(row=0, column = 1) 

ist, zu ändern Zeile 0 grau statt nur der Bereich um das Etikett zu machen? Dank

+1

ich nicht 100% sicher bin (also antworten Kommentar nicht), aber ich glaube, Sie Ihr Etikett in einem Rahmen wickeln bräuchten (Set die ganze Zeile zu füllen) und die Farbe ändern von Das. – scotty3785

Antwort

1

Wenn nur der Titel auf dieser Reihe ist, Sie columspan so dass der Titel Spannweite über alle Spalten verwenden können, und das Etikett horizontal erweitern:

import Tkinter 

master = Tkinter.Tk() 

master.configure(background='SteelBlue1') 
master.columnconfigure(0, weight=1) # make the column 1 expand when the window is resized 
nb_of_columns = 2 # to be replaced by the relevant number 
titlelabel = Tkinter.Label(master, text="my Title", fg="blue4", bg ="gray80") 
titlelabel.grid(row=0, column=0, sticky='ew', columnspan=nb_of_columns) # sticky='ew' expands the label horizontally 

master.geometry('200x200') 
master.mainloop() 

Andernfalls ist die Lösung scotty3785 Rat zu folgen und verwenden, um einen Rahmen:

import Tkinter 

master = Tkinter.Tk() 

master.configure(background='SteelBlue1') 
master.columnconfigure(1, weight=1) 

nb_of_columns = 2 # to be replaced by the relevant number 
titleframe = Tkinter.Frame(master, bg ="gray80") 
titleframe.grid(row=0, column=0, columnspan=nb_of_columns, sticky='ew') 
titlelabel = Tkinter.Label(titleframe, text="my Title", fg="blue4", bg ="gray80") 
titlelabel.grid(row=0, column=1) 
# other widgets on the same row: 
Tkinter.Button(titleframe, text='Ok').grid(row=0, column=2) 

master.geometry('200x200') 
master.mainloop()