Как изменить высоту входа в tkinter при использовании системы сетки и добавить перенос текста? - PullRequest
0 голосов
/ 30 мая 2020

Я делаю заявку на отправку 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()

1 Ответ

0 голосов
/ 31 мая 2020

Вы можете использовать модуль 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 с полосой прокрутки. Вы можете отрегулировать его рост.

...