为何自定义ttk LabelFrame样式中labelanchor设置不生效?
解决ttk LabelFrame标签位置不生效的问题
你遇到的问题根源是**labelanchor是ttk.LabelFrame的实例化参数,而非样式配置项**,所以你在style.configure里设置的labelanchor不会起作用,标签位置始终使用默认值。
修正方法很简单,直接在创建LabelFrame对象时指定labelanchor参数即可:
import tkinter as tk from tkinter import ttk # 创建窗口 root = tk.Tk() style = ttk.Style(root) style.theme_use("alt") # 创建LabelFrame时直接传入labelanchor参数 frame = ttk.LabelFrame(root, text="LabelFrame with labelanchor=s", labelanchor='s') frame.pack(padx=10, pady=10) # 修正拼写错误:Lable → Label label = ttk.Label(frame, text="Label") label.pack(padx=10, pady=10) root.mainloop()
如果希望通过样式统一控制所有LabelFrame的标签位置,ttk并没有直接支持在样式中配置labelanchor的方式,只能通过封装自定义组件或者在实例化时统一传入参数来实现。
内容的提问来源于stack exchange,提问作者Matěj Polák
相关产品推荐
相关产品推荐

