2016-12-25 10 views
2

私はこのコードを持っている:Tkinterには:ボタンのサイズを大きくすることなく、ボタンのテキストを拡大する方法を

import RPi.GPIO as GPIO 
import time 
from tkinter import * 
import os 

GPIO.setmode(GPIO.BCM) 
GPIO.setup(17,GPIO.IN,pull_up_down=GPIO.PUD_UP) #Scrivi lettera/spazio 
GPIO.setup(12,GPIO.IN, pull_up_down=GPIO.PUD_UP)#STICK: lettera - 
GPIO.setup(5,GPIO.IN, pull_up_down=GPIO.PUD_UP) #STICK: lettera + 
GPIO.setup(26,GPIO.IN, pull_up_down=GPIO.PUD_UP)#Cancella lettera 
GPIO.setup(7,GPIO.IN, pull_up_down=GPIO.PUD_UP) #TTS 
GPIO.setup(23,GPIO.IN, pull_up_down=GPIO.PUD_UP)#Spegnimento 



x=0 #Variabile globale utile a determinare quale lettra mostrare 
s="" #Stringa che serve a concatenare le lettere per mostrare la parola 


class mainGUI: 
def __init__(self, parent): 
    self.mioContenitore=Frame(parent) 
    self.mioContenitore.pack() 

    self.schermataSx=Button(self.mioContenitore) 
    self.schermataSx["background"]="white" 
    self.schermataSx.config(font=("helvetica",80))#vedere come ingrandire il testo senza utilizzare il button 
    self.schermataSx.config(height=50, width=5) 
    self.schermataSx.pack(side=LEFT) 




    self.schermataDx=Label(self.mioContenitore,wraplength=450) 
    self.schermataDx["background"]="white" 
    self.schermataDx.config(font=("helvetica", 40)) #wraplength da rivedere 
    self.schermataDx.config(height=50,width=30,anchor=W) 
    self.schermataDx.pack(side=LEFT) 



def cambioLett(self): 
    global x 
    global a 
    if(GPIO.input(5)==0): 
     time.sleep(1.0) # Ritardo cambio lettera da rivedere 
     x+=1 
    if(GPIO.input(12)==0): 
     x-=1 
    if(GPIO.input(7))==0: #TTS: Dice solo la prima parola 
     os.system("pico2wave -l it-IT -w speak.wav "+s+" ") 
     os.system("aplay speak.wav") 

    if(GPIO.input(23))==0: 
     os.system("sudo shutdown -h now") 

    if x==0: 
     self.schermataSx["text"]="A" 
     time.sleep(0.25) 
     if(GPIO.input(17)==0): 
      time.sleep(0.25) 
      cont=0 
      while(GPIO.input(17))==0: 
       cont=cont+1 
       time.sleep(0.5) 
      if cont>=5: 
       self.scriviSpazio() 
      else: 
       self.scriviLett() 

     if(GPIO.input(26))==0: 
      self.cancellaLett() 

...

def scriviLett(self): 
    global s 
    global x 
    if(x==0): 
     s+="A" 
     self.schermataDx["text"]=s 
    if(x==1): 
     s+="B" 
     self.schermataDx["text"]=s 

を...

def scriviSpazio(self): 
    global x 
    global s 
    s+=" " 


def cancellaLett(self): 
    global s 
    s=s[:-1] 
    self.schermataDx["text"]=s 


root=Tk() 
root.attributes('-fullscreen',True) 
GUI=mainGUI(root) 
GUI.cambioLett() 
root.mainloop() 

(私はラズベリーパイにいる)。

私はこの結果を得る: image

ボタン(左)とラベル(右)があります。私はボタンのサイズを変更したいが、全体のボタンを占めるようにテキストサイズを増やしたい。私が試してみると、ボタンも大きくなります。私はパディングのようなものがあると思う。

+0

私たちがあなたを助けてくれるように、完全なコードを投稿してください。 – Eddie

+0

右のラベルを作成するコードを追加しました –

+0

"A"ボタンがある領域はボタンですか? –

答えて

1

tkinterでも可能かどうかわからない。私はあなたの最善の策がイメージを打つことだと信じています。

from tkinter import * 

Tk() 

background_image = PhotoImage(file='yin_yang.png') 
button = Button(
    image=background_image, 
    height=480, 
    background='green' 
) 
button.pack(side=LEFT) 

label = Label(
    font=('helvetica', 60), 
    text='Hello, RPi :)', 
) 
label.pack(side=LEFT) 

mainloop() 

これは、それはまた

enter image description here

どのように見えるかで、あなたはスタックオーバーフローの質問をするたびに、コードをリファクタリングするために最善をしようとそれを取り除くとポストしてください最小限だが完全なコード。

関連する問題