Форматирование ярлыков TKinter python 2.7 - PullRequest
0 голосов
/ 05 марта 2019
from Tkinter import *
import sys
sys.path.append("/Users/bry/Documents/Python/proj")
import stack

window = Tk()
colors=["gold","pink","blue","red","orange","purple","teal","green","yellow","violet","black","silver","white"]
firstGame = stack.blockWorldGame()

window.title("World Block Problem Simulator")
width_value = window.winfo_screenwidth()
height_value = window.winfo_screenheight()
window.geometry("%dx%d+0+0"%(width_value,height_value))

headerFrame = Frame(window)
headerFrame.pack()
headerLabel = Label(headerFrame , text="World Block Simulator!",fg="red",font="times 50 bold italic underline")
headerLabel.pack()
startingFrame = Frame(window)
startingFrame.pack()
startingProgramLabel = Label(startingFrame, text="Starting World Block State" , font="times 20 ")
startingProgramLabel.pack()
FrameContent = Frame(window)
FrameContent.pack()
for array in range([[A],[B,C],[D,E]]):
    frame = Frame(FrameContent)
    frame.pack(side=LEFT,expand=False)
    for block in range(len(firstGame.board[array])):#putting blocks in the same stack to the same frame
        blockLabel = Label(frame,text=firstGame.board[array][block],bg=colors[array],width=30,height=3)
        blockLabel.pack()

window.mainloop()

В основном с помощью этого кода я пытаюсь отразить состояние платы при решении проблемы мировых блоков, однако у меня возникают некоторые проблемы с представлением блоков в правильном формате в графическом интерфейсе пользователя

После запуска этого набора кода я получу результат A, BC, DE. Однако блок не будет отражен в той же позиции B, где он должен быть, он будет плавать на высоте в середине обоих B & C.

Может кто-нибудь сказать мне, как сделать так, чтобы A было в линию с B и D enter image description here

1 Ответ

0 голосов
/ 06 марта 2019

Вам необходимо упаковать blockLabel снизу вверх внутри frame, как показано ниже:

for array in range([[A],[B,C],[D,E]]):
    frame = Frame(FrameContent)
    frame.pack(side=LEFT,fill=Y) # added fill=Y
    for block in range(len(firstGame.board[array])):
        blockLabel = Label(frame,text=firstGame.board[array][block],bg=colors[array],width=30,height=3)
        blockLabel.pack(side=BOTTOM) # added side=BOTTOM
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...