2017-03-14 1 views
0

Je crée une fonction qui augmentera la taille du widget de texte de 1 à chaque fois qu'il est appelé. Je ne trouve pas un moyen de trouver la taille de police actuelle du widget. Je besoin de quelque chose comme:Changer la police de texte du widget en Python

textEntry.configure(font=(fontSize=fontSize+1)) 
+1

voir http://stackoverflow.com/q/4072150/7432 –

+0

@BryanOakley ce qui est loin plus propre que ma réponse - un travail remarquable, comme toujours. – asongtoruin

Répondre

0

Ceci est une solution rapide et sale, mais cela fonctionne pour toutes les polices et peut contenir n'importe quel (s) paramètre (s) de police valide (s).

def increaseSize(): 
    font = textEntry.cget('font')  #get font information 
    info = font.split(' ')    #split it into chunks 

    #find the font size entry 
    for i in info: 
     if i.isdigit(): 
      size = int(i) 
      textEntry.config(font=font.replace(i, str(size + 1))) 
      break 
+0

Merci beaucoup! Cela fonctionne parfaitement pour ce que je fais. –

0

Si vous appelez .config() sur un widget sans aucun paramètre, elle renvoie un dictionnaire contenant la configuration actuelle. Donc, textEntry.config() vous obtiendrait un dictionnaire pour le widget textEntry, et textEntry.config()['font'] obtiendrait un tuple de valeurs relatives à vos paramètres de police. En supposant que vos font paramètres consistent uniquement d'un paramètre de taille (par exemple font=10)

curSize = int(textEntry.config()['font'][-1]) 

obtiendriez-vous un entier contenant la taille de police

+0

Ma police se compose d'une famille et d'une taille. –