python - 将Python标签的特定宽度设置为这么多像素长?

标签 python python-3.x tkinter

我正在制作一个Python程序,我正在寻找方法在我的程序内部制作一个漂亮的居中对齐标题。但是,我在执行此操作时遇到了困难,因为使用我现有的工具,我必须试验标签间距长度以匹配我的标题有多少个字符。有没有一种方法可以使 Python 标签具有一定的像素长度,而不管文本的长度如何?我正在专门寻找一种方法,专门使标签具有特定数量的像素长,这样我就不必尝试所有这些不同的长度。

我尝试使用“padx”和“pady”参数,但我发现长度总是会根据标签本身文本的长度而变化。我还尝试了“width”参数,但它仅扩展了多个文本长度。

from tkinter import *

root = Tk()
root.geometry("960x600")

label_toptitle = Label(root,
                   text="Program Name",
                   padx=40,
                   pady=40,
                   font=(None, 40),
                   #height=2,
                   #width=30
                   )
root.mainloop()

这是我当前的代码,但如果我将名称“程序名称”更改为另一个名称,padx 和 pady 和/或宽度或高度函数将变得不一样的像素长。我需要一种方法使标签具有固定的像素长度。

最佳答案

您的问题标题提到设置标签的长度,但您的真正目标似乎是使标签居中而无需计算边距。

最好的解决方案是不使用填充或边距来使小部件居中。只需告诉 tkinter 当您使用 grid 或 pack 时您希望内容居中,这实际上是默认设置。您根本不必做太多事情。

例如,以下内容将给出一个标题居中的窗口:

import tkinter as tk

root = tk.Tk()
root.geometry("960x600")

label_toptitle = tk.Label(root,
                          text="Program Name",
                          font=(None, 40),
)
label_toptitle.pack(side="top", fill="x")

root.mainloop()

网格也可以居中,但确切的语法取决于您拥有的其他行和列。如果不知道很难给出有用的例子。

如果您确实需要为标签指定精确的像素宽度,您可以向标签添加透明的单像素图​​像并将其隐藏在文本后面。添加图像时,width 属性表示以像素而不是字符为单位的宽度。

示例:

pixel = tk.PhotoImage(width=1, height=1)
label = tk.Label(root, image=pixel, text="Hello", compound="center", width=100)

关于python - 将Python标签的特定宽度设置为这么多像素长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51867429/

相关文章:

python - 具有间隙的信号的功率谱密度?

python - 按下按键时物体不移动

python - scikit 学习。 n_jobs=-1 的多处理管道中的自定义估算器

python - 异常处理的范围规则是什么?

python - 文本小部件内的 Tkinter 检查按钮和滚动

python - 单击时 OptionMenu 不会显示第一个选项 (Tkinter)

python - 使用python在图中查找最高分路径的函数

python - 如何比较第一列和第二列

python - 在成对列表中查找成对项目的频率

python - 获取目录后更新文件路径