2016-04-13 53 views
0

kullanarak değiştirir Ben Raspberry Pi için tam ekran uygulaması yapmaya çalışıyorum. Kod bir dereceye kadar çalışıyor. Tek yapmak istediğim, üst kırmızı bölümü, sık sık değişecek olan verileri içeren etiketler koyabileceğim 3 bölüme ayırdı. Ben yorumladı çizgi eklerkenDüzen Tkinter

#!/usr/bin/python 

from tkinter import * 
from tkinter import ttk 

root = Tk() 
root.title("Learning Number Bonds!") 

test = StringVar(value="XX + XX = XXX") 
score = StringVar(value="0") 
question = StringVar(value="7/10") 
time = StringVar(value="8s") 


w, h = root.winfo_screenwidth(), root.winfo_screenheight() 
root.geometry("%dx%d+0+0" % (w, h)) 

topFrame = Frame(root, bg="red", width=w, height=h/4) 
##Label(topFrame, text="test").grid(row=1, column=1) 
topFrame.pack() 

bottomFrame = Frame(root, bg="blue", width=w, height= h-(h/4)) 
bottomFrame.pack() 

equation = Label(bottomFrame, textvariable=test, font=("Arial", 70)) 
equation.pack(fill=X) 

root.mainloop() 

This is what I have, and the bottom how I want

Ama şuna benzer:

[Tüm sonları - Kaldırılan]

ben üstünde 3 eşit boyutlu kutuları nasıl alabilirim İçlerindeki etiketlerle mi ?!

DÜZENLEME:

kendimi çok yorgun ve bu düşünmek aptal olmalı ve kutular aynı boyutta olması "HAD" Aslında yakalandım. Tüm yardım için

#!/usr/bin/python 

from tkinter import * 
from tkinter import ttk 

root = Tk() 
root.title("Learning Number Bonds!") 

test = StringVar(value="XX + XX = XXX") 
score = StringVar(value=999) 
question = StringVar(value="10/10") 
time = StringVar(value="10") 


w, h = root.winfo_screenwidth(), root.winfo_screenheight() 
root.geometry("%dx%d+0+0" % (w, h)) 

topFrame = Frame(root, bg="red", width=w, height=h/4) 

##Score 
scoreTextLabel = Label(topFrame, text="Score: ", font=("Arial", 30)) 
scoreTextLabel.pack(side=LEFT) 

Label2 = Label(topFrame, textvariable=score, font=("Arial", 30)) 
Label2.pack(side=LEFT, padx=(0,50)) 

##Question 
qTextLabel = Label(topFrame, text="Question: ", font=("Arial", 30)) 
qTextLabel.pack(side=LEFT) 

TextLabel2 = Label(topFrame, textvariable=question, font=("Arial", 30)) 
TextLabel2.pack(side=LEFT, padx=(0,50)) 

##Time 
tTextLabel = Label(topFrame, text="Time: ", font=("Arial", 30)) 
tTextLabel.pack(side=LEFT) 

TextLabel3 = Label(topFrame, textvariable=time, font=("Arial", 30)) 
TextLabel3.pack(side=LEFT, padx=(0,50)) 


topFrame.pack(pady=(0,120)) 

bottomFrame = Frame(root, bg="blue", width=w, height= h-(h/4)) 
bottomFrame.pack() 

equation = Label(bottomFrame, textvariable=test, font=("Arial", 70)) 
equation.pack(fill=X) 

root.mainloop() 

Which looks like this

teşekkür: Yukarıdaki orijinal kod değişiklikleri birkaç dakika sonra ben ile sona erdi!

+0

Çerçevenin içinde ne olursa olsun üst çerçevenin orijinal boyutunda kalmasını ister misiniz? Varsayılan olarak, çerçeveler genellikle bir GUI için en iyi davranış olan içeriklerine sığacak veya küçülecektir. –

+0

Evet, genişlik şu an bunun gibi kalmasını istiyorum ama diğer 3 etiketin hepsi eşit genişlikte. – user3406647

+0

Yüksekliğe ne dersiniz? Sabit bir yükseklik mi, yoksa etiketleri içerecek kadar uzun mu? –

cevap

0

Bu, üst sıranın nasıl gösterileceğini gösterecek ve çerçeveyi uzatmak için tüm alanı kaplayacak şekilde yapışkanın nasıl kullanılacağını gösterir ve ayrıca Etiket için bir genişlik genişliği kullanır. Türün daha büyük olmasını istiyorsanız, etiketin yazı tipi boyutunu da artırmak isteyebilirsiniz.

root = Tk() 
root.title("Learning Number Bonds!") 

test = StringVar(value="XX + XX = XXX") 
score = StringVar(value="0") 
question = StringVar(value="7/10") 
time = StringVar(value="8s") 


w, h = root.winfo_screenwidth(), root.winfo_screenheight() 
root.geometry("%dx%d+0+0" % (w, h)) 

topFrame = Frame(root, bg="red", width=w, height=h/4) 

## put an empty row on top 
topFrame.rowconfigure(0, weight=1, minsize=100) 
Label(topFrame, text="test", bg="lightblue", width=50).grid(row=1,  column=1) 
topFrame.grid(sticky="nsew") 

bottomFrame = Frame(root, bg="blue", width=w, height= h-(h/4)) 
bottomFrame.grid(row=1) 

equation = Label(bottomFrame, textvariable=test, font=("Arial", 70)) 
equation.pack(fill=X) 

root.mainloop() 
+0

İkinci bölümün neden (XX + ...) neden genişletilmiş olduğunu anlamıyorum. http://puu.sh/ohfK3/b5abd131f3.png – user3406647

+0

İkinci çerçeveyi pack() 'den grid()' a değiştirdim, böylece sütundaki her şey aynı genişliktedir. –

+0

Yardımınız için çok teşekkür ederim ama sanırım o zamanlar çok yorgunum ve şimdi biraz daha fazla yastıklama ile çalıştım. Gönderiyi güncelleyeceğim. – user3406647