繁体   English   中英

如何格式化Tkinter中Text Widget输入的文本

[英]How to format the text input from Text Widget in Tkinter

在我的 tkinter 程序中,我使用Text小部件从用户那里收集文本,稍后使用label小部件将其打印在屏幕上。 虽然我可以将它打印到屏幕上,但文本都是居中对齐的。 因为我收集的是一些很难阅读的程序,所以我需要它保持对齐。


这是我的程序方法- 一旦收集了程序,它就会存储到字典中

   def Procedure(self):

        textfield = Text(gui, height=30, width=82)
        textfield.place(x="20", y="100")

        procedure_label = LabelWidget(self.screen, "Procedure", "Courier", 40)
        procedure_label.Call().place(x="220", y="20")

        button_save = Button(gui, text="Next", padx="50", pady="20", bg="lightgrey",
                             command=partial(self.CheckPage, 4, procedure=textfield))
        button_save.place(x="250", y="600")

这就是我打印程序的方式

    proc_text_label = ""
    for i in fullDictProc:
        proc_text_label_temp = Label(root, text=i, wraplength=900)
        proc_text_label = proc_text_label_temp
    proc_text_label.config(font=("Courier", 12))
    proc_text_label.place(x=70, y=250)

这是演示问题的最小可重现代码

运行一下,看到文本的alignment。

from tkinter import *
from functools import partial

gui = Tk()
gui.geometry("700x700")


def printit(textfield):
    procedure_list = [textfield.get("1.0", "end-1c")]
    textfield.place_forget()
    proc_text_label = ""
    for i in procedure_list:
        proc_text_label_temp = Label(gui, text=i, wraplength=900)
        proc_text_label = proc_text_label_temp
    proc_text_label.config(font=("Courier", 12))
    proc_text_label.place(x=70, y=250)


textfield = Text(gui, height=30, width=82)
textfield.place(x="20", y="100")


button_save = Button(gui, text="Next", padx="50", pady="20", bg="lightgrey",
                     command=partial(printit, textfield))

button_save.place(x=500, y=600)
gui.mainloop()

我认为您正在寻找的可能是justify的:

proc_text_label.config(justify='left')

看看Tkinter Label 小部件

我认为您正在寻找的是anchor参数。 这就是您的最小示例的工作方式:

from tkinter import *
from functools import partial

gui = Tk()
gui.geometry("700x700")


def printit(textfield):
    procedure_list = [textfield.get("1.0", "end-1c")]
    textfield.place_forget()
    proc_text_label = ""
    for i in procedure_list:
        proc_text_label_temp = Label(gui, text=i, wraplength=900,
                                     anchor='w',
                                     bg='blue',
                                     width=50)
        proc_text_label = proc_text_label_temp
    proc_text_label.config(font=("Courier", 12))
    proc_text_label.place(x=70, y=250)


textfield = Text(gui, height=30, width=82)
textfield.place(x="20", y="100")


button_save = Button(gui, text="Next", padx="50", pady="20", bg="lightgrey",
                     command=partial(printit, textfield))

button_save.place(x=500, y=600)
gui.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM