21
Дек
2014

Как установить фиксированный размер текстового поля в Tkinter?

В частности интересует виджет Text. В нижеследующем примере виджет Text, при задании слишком большого размера шрифта, виджет растягивается. Как задать ему фиксированный размер, независимо от размера шрифта?

import Tkinter
from ScrolledText import ScrolledText

class DialogMessages():

    def __init__(self):
        self.text = "Your text!" * 100 # текст окна
        self.size_font = "12"          # размер шрифта окна

        self.root = Tkinter.Tk()

        self.width_screen = self.root.winfo_screenwidth()
        self.height_screen = self.root.winfo_screenheight()

        self.body = Tkinter.Canvas(self.root, width=437, height=250)
        self.body.pack()

        self.rectangle_text = Tkinter.Frame(self.body)
        self.rectangle_text.pack()

        self.body_text = ScrolledText(self.rectangle_text, width=1, height=1)
        self.body_text.pack()

        self.root.geometry("%sx%s+%s+%s" % (437, 267, int(self.width_screen * 0.35),
                                             int(self.height_screen * 0.35)
                                             ))

    def show(self):
        self.body_text.insert("1.0", self.text)
        self.body_text.config(font=("family", self.size_font), state="disabled")

        self.root.mainloop()

window = DialogMessages()
# Варьируя данную переменную, можно видеть,
# как текстовое поле уменьшается либо увеличивается.
window.size_font = "5"
window.show()

Источник: https://ru.stackoverflow.com/questions/385129/%D0%9A%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D1%84%D0%B8%D0%BA%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B2-tkinter

Share

Тебе может это понравится...