2016-11-02 15 views
0

ich einen Rahmen haben, ist, dass in row = 0, dass enthält den Text High und Low, die ich in column = 2 & column = 3 haben möchte. Ich habe eine weitere Reihe darunter, die einen numerischen Wert enthält. aber auf dem Etikett habe ich die Breite auf alle gleich 7 gesetzt.Warum sind meine Etiketten unterschiedlich groß, obwohl die Breiten gleich sind?

Was mache ich hier falsch?

##Forecast Frame 
self.ForecastFrame = Frame(self, bg='black') 
self.ForecastFrame.grid(row = 0, column = 0) 

##Forecast Title 
self.forecastTitle = Frame(self.ForecastFrame, bg='white') 
self.forecastTitle.grid(row = 0, column = 0, sticky = E)  

self.forecastTitleHighLabel = Label(self.forecastTitle, text='High', font=('HelveticaNeue Light', 12), fg='white', bg='green', width = '7', anchor='center') 
self.forecastTitleHighLabel.grid(row = 0, column = 2, sticky = E) 

self.forecastTitleLowLabel = Label(self.forecastTitle, text='Low', font=('HelveticaNeue Light', 12), fg='white', bg='blue', width = '7', anchor='center') 
self.forecastTitleLowLabel.grid(row = 0, column = 3, sticky = E) 

##Forecast One Labels 
self.forecastOneDate = '' 
self.forecastOneIcon = '' 
self.forecastOneHigh = '' 
self.forecastOneLow = '' 

self.forecastOne = Frame(self.ForecastFrame, bg='black') 
self.forecastOne.grid(row = 1, column = 0) 

self.forecastOneDateLabel = Label(self.forecastOne, font=('HelveticaNeue Light', 12), fg='white', bg='yellow', width=10, anchor='w') 
self.forecastOneDateLabel.grid(row = 0, column = 0, sticky = W) 

self.forecastOneIconLabel = Label(self.forecastOne, bg='red', width=50) 
self.forecastOneIconLabel.grid(row = 0, column = 1, sticky = W) 

self.forecastOneHighLabel = Label(self.forecastOne, font=('HelveticaNeue Light', 12, 'bold'), fg='white', bg='blue', width = '7', anchor='center') 
self.forecastOneHighLabel.grid(row = 0, column = 2, sticky = E) 

self.forecastOneLowLabel = Label(self.forecastOne, font=('HelveticaNeue Light', 12, 'bold'), fg='white', bg='green', width = '7', anchor='center') 
self.forecastOneLowLabel.grid(row = 0, column = 3, sticky = E) 
+0

Bitte lesen Sie [Wie ein Minimal, komplett zu erstellen und prüfbare Beispiel] (http://www.stackoverflow.com/help/mcve) (MCVE) –

+0

Versuchen Sie, 'klebrig = EW', um die Breite der Etiketten in derselben Spalte auszurichten. – acw1668

Antwort

1

effbot.org: Label

width =

Die Breite des Etiketts. Wenn das Etikett Text anzeigt, wird die Größe in Texteinheiten angegeben. Wenn das Etikett ein Bild anzeigt, wird die Größe in Pixel (oder Bildschirmeinheiten) angegeben. Wenn die Größe auf 0 gesetzt oder weggelassen wird, wird sie basierend auf dem Etiketteninhalt berechnet. (Breite/Breite)

Es bedeutet width hängt von Schriftgröße und Gewicht ab.

import tkinter as tk 

root = tk.Tk() 


l1 = tk.Label(root, text='Hello', width=7, fg='white', bg='blue') 

f = ('HelveticaNeue Light', 12) 

l2 = tk.Label(root, text='Hello', width=7, fg='white', bg='green', font=f) 

f = ('HelveticaNeue Light', 12, 'bold') 

l3 = tk.Label(root, text='Hello', width=7, fg='white', bg='red', font=f) 


l1.grid() 
l2.grid() 
l3.grid() 

root.mainloop() 

enter image description here

Verwandte Themen