2017-05-29 73 views
2

我試圖讓l_Title標籤(類StartPage)中的文本右對齊,但是anchorjustify都不出現工作。Python - 對齊Tkinter標籤文本

我沒有收到任何錯誤消息,其中一件事情可能會影響到我使用的是ttk標籤而不是tk標籤,但是當我更換回tk標籤時沒有任何變化。

import tkinter as tk 
from tkinter import ttk 

LARGE_FONT= ("Verdana", 12) 

def To_Print(self): 
    xf = Enter_Inputs(self,'xf') 
    print('xf = ', xf) 

def Enter_Inputs(self,x): # Enter inputs from values typed in 

     xf_In = int(self.e_xf.get()) 

     if x == 'xf': 
      x = float(xf_In)/100 

     return x 


class TestApp(tk.Tk): 

    def __init__(self, *args, **kwargs): 

     tk.Tk.__init__(self, *args, **kwargs) 

     container = tk.Frame(self) 
     container.pack(side="top", fill="both", expand = True) 
     container.grid_rowconfigure(0, weight=1) 
     container.grid_columnconfigure(0, weight=1) 

     self.frames = {} 

     frame = StartPage(container, self) 

     self.frames[StartPage] = frame 

     frame.grid(row=0, column=0, sticky="nsew") 

     self.show_frame(StartPage) 

    def show_frame(self, cont): 

     frame = self.frames[cont] 
     frame.tkraise() 


class StartPage(tk.Frame): 

    def __init__(self, parent, controller): 
     tk.Frame.__init__(self,parent) 


     self.l_Title = ttk.Label(self, text="Start Page", font=LARGE_FONT, 
           justify="right", anchor="e") 
     self.l_Title.grid(row=0, columnspan = 2) 


     self.l_xf = tk.Label(self, text="% xA of Feed") 
     self.l_xf.grid(row=1) 

     self.e_xf = tk.Entry(self) 
     self.e_xf.grid(row=1, column=1) 


     self.b_Run = tk.Button(self, text="Click to Run", command=lambda: To_Print(self)) 
     self.b_Run.grid(row=2, column=0, columnspan = 2) 


app = TestApp() 
app.mainloop() 

回答

3

問題是標籤調整它的大小是一個完美的適合文本。 justify僅在標籤大於文本時纔有效。

在你的情況下,它更容易定義標籤的位置,而不是標籤中的文字:

self.l_Title.grid(row=0, columnspan = 2, sticky='e') 
+0

完美!謝謝 –