python - tkinter LabelFrame 中心文本
问题描述
我正在尝试使用 LabelFrame 函数在框架中居中文本。我的代码如下。
import tkinter as tk
window = tk.Tk()
for i in range(9):
for j in range(9):
frame = tk.LabelFrame(
master=window,
relief=tk.RAISED,
borderwidth=5,
width=50,
height=50,
text=i+j,
labelanchor = 'n'
)
frame.grid(row=i, column=j)
window.geometry("500x500")
window.mainloop()
指定位置的参数labelanchor仅给出框架边缘的选项。有没有简单的方法使用LabelFrame在框架内居中文本?
解决方案
有没有任何简单的方法可以使用 LabelFrame 在框架内居中文本?
labelframe 的文本只能出现在框架的边缘。如果您希望文本出现在框架内,您必须创建一个Label
并将其添加到框架中。
使用框架和标签
如果您希望将其他小部件放入框架中并且不希望此文本干扰其他小部件,这是使用place
.
以下示例添加标签“Hello, world”以显示在小部件的中心。一个按钮被放置在框架中只是为了表明它的位置不受标签的影响,反之亦然。屏幕截图显示了框架的自然外观以及调整窗口大小时的样子。
import tkinter as tk
root = tk.Tk()
lf = tk.Frame(root, bd=2, relief="groove")
lf_label = tk.Label(lf, text="Hello, world")
lf_label.place(relx=.5, rely=.5, anchor="c")
lf.pack(padx=20, pady=20, fill="both", expand=True)
b = tk.Button(lf, text="Click me")
b.pack(padx=10, pady=10)
root.mainloop()
仅使用标签
您可以在任何其他小部件中添加小部件。因此,您可以只使用标签而不是框架。默认情况下,文本将居中,就像前面的示例一样,它不会影响其他小部件的布局。
我没有包含屏幕截图,因为结果与前面的示例相同。
import tkinter as tk
root = tk.Tk()
lf = tk.Label(text="Hello, world", bd=2, relief="groove")
lf.pack(padx=20, pady=20, fill="both", expand=True)
b = tk.Button(lf, text="Click me")
b.grid(row=0, column=0)
root.mainloop()
推荐阅读
- testing - 在 JaCoCo 报告生成期间找不到 Kotlin 约定打包的源文件
- ionic-framework - button handler in Toast message Ionic 4 is not fired, why?
- c# - 是否可以分配像 Generic
generic = new Generic这样的泛型 (); - angular - 使用 angular + web api 创建和查看对象。前端结构
- android - 密钥库 getEntry 在 Android 9 上返回 NULL
- symfony - 在 Symfony 迁移类中,获取您在控制台迁移命令中输入的选项
- python - ValueError:无法将字符串转换为浮点数:'x'
- javascript - 从数组中删除多个对象并返回更新的数组
- javascript - chrome扩展弹出窗口关闭后怎么办?
- c++ - 依赖注入:依赖需要字段/成员