私は自分のRaspberry Piのフルスクリーンアプリを作ろうとしています。私はある程度コードを手に入れました。私が今やりたいのは、一番上の赤い部分を3つの部分に分けて、頻繁に変わるデータを含むラベルを貼ることができます。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
しかし、私はコメント行を追加するときには、次のようになります。
[これは、すべての休憩 - 削除]
私が一番上に3つの等しいサイズのボックスを取得できますかそれらのラベルで!
EDIT:
私はこのことについて考えるにはあまりにも疲れて愚かだったに違いないとのボックスが同じサイズになるように、「HAD」実際に巻き込まれました。すべての助けを
#!/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()
ありがとう:上記の元からのコードの変更の数分後、私は終わりました!
フレームの内側に関係なく、上部フレームを元のサイズに維持しますか?デフォルトでは、フレームはコンテンツに収まるように縮小または拡大されますが、これは通常、GUIの最良の動作です。 –
はい、今は幅ですが、そのように残りますが、他に3つのラベルがあり、すべて同じ幅になります。 – user3406647
高さはどうですか?固定された高さが必要なのか、それともラベルを入れるだけの高さですか? –