簡體   English   中英

python tkinter ttk 樣式

[英]python tkinter ttk styles

通常,當我使用 TTk 樣式時,我會逐個對象定義樣式對象。 如果我有很多表單和窗口,我會定義一個setStyle()方法來做到這一點。 但是,在這個新應用程序中,在 App 主類中只有一個setStyle()方法是有意義的。 問題是它忽略了App.setStyle()方法中的設置。 有什么建議嗎?

    class App(Tk):
...
    def setStyles(self):
        self.s = ttk.Style()
        self.s.theme_use('alt')
        padding = "12 12 12 12"
        self.s.configure('frmWin.TFrame', padding=padding)
        self.s.configure('big.TButton', font=(None, 24, "bold"))
        self.s.configure('TLabel', font=(None, 28), anchor=W, justify=LEFT, sticky=W)
        self.s.configure('TLabelframe', borderwidth=40, bordercolr="blue", labelmargins=(40,0))
        self.s.configure('TLabelframe.Label', font=(None, 20), sticky=W)

        # [MM] formNewPlayer
        self.s.configure("frmNewPlayer.Treeview", rowheight=72, highlightthickness=0, bd=0, font=('Calibri', 24,'bold')) # Modify the font of the body
        self.s.configure("frmNewPlayer.Treeview.Heading", font=('Calibri', 13,'bold')) # Modify the font of the headings
        self.s.configure("frmNewPlayer.TLabel", font=("Calibri", 16))
        self.s.configure("frmNewPlayer.Tentry", font=("Calibri", 22), width=16)
        self.s.configure('frmNewPlayer.TButton', font=("Calibri", 24, "bold"))
        
        # [MM] AskDialog
        self.s.configure("AskDlg.TButton",foreground="black",
                                         background="white",
                                         width=4,
                                         padding=[10, 10, 10, 10],
                                         font = "Verdana 48 bold")
        self.s.configure("AskDlg.TLabel", foreground="black",
                                         background="white",
                                         image="",
                                         padding=[50, 50, 50, 50],
                                         font = "Verdana 48")
        self.s.configure("AskDlg.TFrame", foreground="black",
                                         background="white",
                                         borderwidth = 8,
                                         font = "Verdana 48 underline")

好吧,您可以檢查:

  • 首先,您必須確保正確調用了設置文件並導入了它。 (對於import settings ,您可以像這樣調用類: settings.setStyle() ,對於from settings import setStyle ,您只需使用setStyle()調用它);
  • 第二件事是您可能忘記調用setStyle()類;
  • 第三件事可能是你沒有正確給出論據。

如果您檢查了所有內容但仍然無法正常工作,請在評論中給我留言。

好的,謝謝你的幫助。 我發現了這個錯誤,如果某些調試選項設置為 True,則繞過App __init__()中對setStyles()的調用。 這是一個復雜的標志調試字段的錯誤實現......現在一切都按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM