2017-03-14 4 views
0

Ich mache eine Funktion, die die Größe des Text-Widget um 1 jedes Mal erhöht, wenn es aufgerufen wird. Ich finde keine Möglichkeit, die aktuelle Schriftgröße des Widgets zu finden. Ich brauche so etwas wie:Ändere Text Widget Schriftart in Python

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

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

+0

@BryanOakley so weit ordentlicher als meine Antwort ist - hervorragende Arbeit, wie immer. – asongtoruin

Antwort

0

Dies ist eine schnelle und schmutzige Lösung, aber es funktioniert für alle Schriften und kann alle gültigen Schriftparameter enthalten.

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

Vielen Dank! Das funktioniert perfekt für das, was ich mache. –

0

Wenn Sie .config() auf einem Widget ohne Parameter aufrufen, gibt sie ein Wörterbuch, um die aktuelle Konfiguration enthält. Also, textEntry.config() würde Sie ein Wörterbuch für die textEntry Widget, und textEntry.config()['font'] erhalten Sie ein Tupel von Werten in Bezug auf Ihre Schriftart Einstellungen. Angenommen, Ihre font Einstellungen bestehen nur eines Größenparameter (zB font=10)

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

würden Sie eine ganze Zahl erhalten die aktuelle Schriftgröße enthält

+0

Meine Schrift besteht aus einer Familie und einer Größe. –

Verwandte Themen