首页 > 解决方案 > 如何更改 tkinter 输入字段的宽度或高度

问题描述

我一直在制作一个检查语法的脚本。现在我已经使用 Tkinter 将其更新为 gui。问题是我试图指出语法错误的行,当我使用输入字段输入文本时,所有内容都在一行中。

我的问题是如何扩展输入字段?

这是我的代码:

import re
from tkinter import *

window = Tk()
window.minsize(width=300, height= 20)
wr = []

def work():
    x = e1.get()
    print(x)
    BigLetterSearcher = re.compile(r'\. .|\n')
    mo = BigLetterSearcher.findall(e1.get())
    x = 1
    y = 0
    v = 0
    z = ""
    wr = []
    for i in mo:
        if i == '\n':
            x += 1
        elif i != i.upper():
            v = 1
            if x != y:
                z = "Row", x
                wr.append(z)
            wr.append(i)
            y = x
    if v == 0:
        wr.append ("Congratulations none of your grammar was wrong!")
    l1.configure(text=wr)

l1 = Label(window, text="example")
e1 = Entry(window, text="Enter text here: ")
b1 = Button(window, text="Work", command=work)

leb = [l1, e1, b1]
for all in leb:
    all.pack()

window.mainloop()

标签: pythontkinter

解决方案


条目小部件无法垂直扩展。这是因为已经有一个为此设计的小部件,称为Text(). 为了将文本添加到我们可以使用的文本小部件insert(),您可以使用 2 部分索引指定位置。第一部分是行,第二部分是列。对于行/行,它从数字 1 开始,对于该行的索引,它从零开始。

例如,如果你想在第一行/列插入一些东西,你可以这样做insert("1.0", "some data here")

这是您使用的代码Text()

import re
from tkinter import *

window = Tk()
window.minsize(width=300, height= 20)
wr = []

def work():
    x = e1.get("1.0", "end-1c")
    print(x)
    BigLetterSearcher = re.compile(r'\. .|\n')
    mo = BigLetterSearcher.findall(x)
    x = 1
    y = 0
    v = 0
    z = ""
    wr = []
    for i in mo:
        if i == '\n':
            x += 1
        elif i != i.upper():
            v = 1
            if x != y:
                z = "Row", x
                wr.append(z)
            wr.append(i)
            y = x
    if v == 0:
        wr.append ("Congratulations none of your grammar was wrong!")
    l1.configure(text=wr)

l1 = Label(window, text="example")
e1 = Text(window, width=20, height=3)
e1.insert("end", "Enter text here: ")
b1 = Button(window, text="Work", command=work)

leb = [l1, e1, b1]
for all in leb:
    all.pack()

window.mainloop()

推荐阅读