我想在某些文本周圍有一個矩形邊框,這些文本從末尾添加到文本框中,并將放置在中心。
例如:

不幸的是,我找不到這樣做的方法,因為我不知道如何將文本放置在文本框中的行中心,也不知道如何用矩形包圍文本。
uj5u.com熱心網友回復:
您可以在小部件中將Label空格和換行符之間的邊框包裹起來。justify='center'Text
下面是一個例子:
import tkinter as tk
root = tk.Tk()
textbox = tk.Text(root, width=30, height=10)
textbox.pack()
textbox.tag_config('center', justify='center')
def center_label(textbox, **kwargs):
textbox.insert('end', ' ', 'center')
lbl = tk.Label(textbox, bd=3, relief='solid', **kwargs)
textbox.window_create('end', window=lbl)
textbox.insert('end', '\n\n')
center_label(textbox, text='hello', width=10, font='Arial 12 bold')
center_label(textbox, text='............', width=20)
textbox.insert('end', '\nhello\n')
root.mainloop()
結果:

uj5u.com熱心網友回復:
嘗試將文本框放入它自己的框架中。
像這樣的一些事情:
from Tkinter import *
root = Tk()
labelframe = LabelFrame(root, text="LabelFrame")
labelframe.pack()
text = Label(labelframe, text="Text inside labelframe")
text.pack()
root.mainloop()
uj5u.com熱心網友回復:
您可以使用 將邊框添加到條目relief = "solid",使文本居中outline,您可以使用grid它以您想要的方式對齊小部件。
import tkinter as tk
root = tk.Tk()
root.geometry("400x200")
root.grid_columnconfigure(0, weight = 1)
ent1 = tk.Entry(root, relief = "solid", justify = "center")
ent1.insert(0, "hello")
ent1.grid(row = 0, column = 0, pady = 10)
ent2 = tk.Entry(root, relief = "solid", justify = "center")
ent2.insert(0, ".......")
ent2.grid(row = 1, column = 0, pady = 10)
lab1 = tk.Label(root, text = "hello")
lab1.grid(row = 2, column = 0, sticky = "w")
lab2 = tk.Label(root, text = "hello")
lab2.grid(row = 3, column = 0, sticky = "w")
root.mainloop()
大部分內容都很簡單,root.grid_columnconfigure通過將第一列的權重設為 1,該行使網格占據了根視窗的整個寬度。結果與您的示例非常相似:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435647.html
標籤:Python tkinter 文本框 tkinter-canvas tkinter-text
下一篇:Tkinter用點畫線創建線條
