【问题标题】:How do I vertically center text in a button?如何在按钮中垂直居中文本?
【发布时间】:2023-03-05 20:46:02
【问题描述】:

我在框架中有一个按钮:

self.b = tk.Button(self.subframe1, text="UPDATE", command = self.update)

此按钮中的文本将水平居中而不是垂直居中。后者可以吗?

【问题讨论】:

  • 在我的系统按钮小部件中,默认情况下,它的文本水平和垂直居中。
  • 根据this pageanchor的默认值确实是CENTER...
  • 您需要提供意外行为的minimal example
  • 你在哪个平台上?对于相同的代码,我已经看到 Windows 和 OS X 在 GUI 外观上的差异。
  • 我在 Linux 上(具体来说是 Fedora)。抱歉,我忘记了最小的示例,当我回到我的电脑时,我会这样做!

标签: python button text tkinter


【解决方案1】:

正如@gandreadis 所说,您可以依靠anchor 选项来完成这项工作。

这是一个 MCVE(在 Python 3.x 中):

import tkinter as tk


class Test:

   def __init__(self, master):
       self.master = master
       self.configure_gui()
       self.create_widgets()
       self.configure_widgets()

   def configure_gui(self):
       self.master.title("Button Text Centering")
       self.master.geometry('300x100')
       self.master.resizable(0, 0)

   def create_widgets(self):
       self.create_demo_button()

   def create_demo_button(self):
       self.btn_with_centered_text = tk.Button(self.master, text="Centered")
       self.btn_with_centered_text.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
       self.btn_with_centered_text.config(bg="yellow")

   def configure_widgets(self):
       self.configure_btn_with_centered_text()

   def configure_btn_with_centered_text(self):
       self.btn_with_centered_text.config(bg="yellow", relief=tk.RAISED)
       self.btn_with_centered_text.config(border="2px")


def main():
   root = tk.Tk()
   t = Test(root)
   root.mainloop()

if __name__ == '__main__':
   main()   

演示:

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 2012-01-05
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多