Ir ao conteúdo

Posts recomendados

Postado

Fala rapaziada do Python! É o seguinte, estava brincando com Python e Tkinter até que tive uma ideia de fazer com que a fonte de uma janela de input se ajuste automaticamente a medida que novos caracteres vão sendo adicionados, porém, a forma que fiz não é tão eficiente, e não fica perfeito. Bom, quero compartilhar esse código de teste e perguntar se vocês conhecem uma forma melhor.

 

import customtkinter as CTk
from tkinter import *


class MainWindow():
    def __init__(self) -> None:
        self.layout_0 = Tk()

        self.layout_1 = Frame(self.layout_0)
        self.layout_1.grid()

        self.display_back = CTk.CTkEntry(master=self.layout_1, font=('Arial', 50), width=294,
                                         state='disable', corner_radius=0, border_width=0)
        
        self.display_back.grid(column=0, row=0)

        self.display_0_var = StringVar()
        self.display_0_var.trace_add('write', self.AutoFontAdjustment)
        
        self.display_0 = CTk.CTkEntry(master=self.layout_1, font=('Arial', 50), 
                                      textvariable=self.display_0_var, width=294, 
                                      justify='right', corner_radius=0, border_width=0, bg_color='black')
        
        self.display_0.grid(column=0, row=0)

        self.layout_0.mainloop()


    def AutoFontAdjustment(self, *args):
        TextLength = self.display_0.get()
        MaxCharacters = int(10)
        DefaultFont = int(50)

        if len(TextLength) > MaxCharacters:
            FontDecrease = self.display_0_var.get()
            FontScale = float(1.4)
            FontMin = int(18)

            FontSize = (DefaultFont - len(FontDecrease) * FontScale)
            FontSize = max(FontSize, FontMin)
            self.display_0.configure(font=('Arial', FontSize))

        else:
            self.display_0.configure(font=('Arial', DefaultFont))


MainWindow()

 

  • Curtir 1
  • 2 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!