如何在使用网格系统时更改 tkinter 中的条目高度并添加文本换行?

How to change Entry height in tkinter while using grid system and add text wraping?

我正在制作电子邮件发送 gui 应用程序。我想添加一个条目(我的代码中的 messageEntry)来输入消息。我想改变它的高度,这样消息就不必在一行中输入(我想要文字换行)。我尝试使用 ipady,它确实调整了条目的大小,但消息仍然只能在一行中输入(在条目的中间)。这是我的代码:

def sendMail(senderEmail, senderPassword):

    global server

    sendMailFont = ['Consolas', 10]

    sendMailWindow = Tk()

    sendMailWindow.title("Sendmail")

    sendMailWindow.resizable(False, False)
    sendMailWindow.focus_force()

    # sendMailWindow.iconbitmap('info icon.ico')
    sendMailWindow.config(bg = "#DCDCDC")

    loggedInLabel = Label(sendMailWindow, font = (sendMailFont), text = "Logged in as {}".format(senderEmail), bg = "#DCDCDC")
    loggedInLabel.grid(row = 0, column = 0)

    subjectLabel = Label(sendMailWindow, font = (sendMailFont), text = "Subject", bg = "#DCDCDC")
    subjectLabel.grid(row = 2, column = 0, sticky = "w")

    subjectEntry = Entry(sendMailWindow, font = (sendMailFont), bg = "#FFFFFF", width = 37)
    subjectEntry.grid(row = 3, column = 0, sticky = "w", ipady = 2)

    messageLabel = Label(sendMailWindow, font = (sendMailFont), text = "Message", bg = "#DCDCDC")
    messageLabel.grid(row = 5, column = 0, sticky = "w")

    messageEntry = Entry(sendMailWindow, font = (sendMailFont), bg = "#FFFFFF", width = 37)
    messageEntry.grid(row = 6, column = 0, sticky = "w")

    hiddenLabel = Label(sendMailWindow, font = ('Consolas', 1), text = "", bg = "#DCDCDC")
    hiddenLabel.grid(row = 1, column = 0, sticky = "we")
    hiddenLabel = Label(sendMailWindow, font = ('Consolas', 10), text = "", bg = "#DCDCDC")
    hiddenLabel.grid(row = 4, column = 0, sticky = "we")

    sendMailWindow.mainloop()

您可以像这样使用 tkinter.scrolledtext 模块:

from tkinter import *
from tkinter.scrolledtext import *

def sendMail(senderEmail, senderPassword):

    global server

    sendMailFont = ['Consolas', 10]

    sendMailWindow = Tk()

    sendMailWindow.title("Sendmail")

    sendMailWindow.resizable(False, False)
    sendMailWindow.focus_force()

    # sendMailWindow.iconbitmap('info icon.ico')
    sendMailWindow.config(bg = "#DCDCDC")

    loggedInLabel = Label(sendMailWindow, font = (sendMailFont), text = "Logged in as {}".format(senderEmail), bg = "#DCDCDC")
    loggedInLabel.grid(row = 0, column = 0)

    subjectLabel = Label(sendMailWindow, font = (sendMailFont), text = "Subject", bg = "#DCDCDC")
    subjectLabel.grid(row = 2, column = 0, sticky = "w")

    subjectEntry = Entry(sendMailWindow, font = (sendMailFont), bg = "#FFFFFF", width = 37)
    subjectEntry.grid(row = 3, column = 0, sticky = "w", ipady = 2)

    messageLabel = Label(sendMailWindow, font = (sendMailFont), text = "Message", bg = "#DCDCDC")
    messageLabel.grid(row = 5, column = 0, sticky = "w")

    ##########
    messageEntry = ScrolledText(sendMailWindow, font = (sendMailFont), bg = "#FFFFFF", width = 37, height = 5)
    messageEntry.grid(row = 6, column = 0, sticky = "w")
    ##########


    sendMailWindow.mainloop()

该模块是带滚动条的tkinter.text模块。你可以调整他的身高。