python - 格式化标签TKinter python 2.7
问题描述
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()
基本上通过这段代码,我试图在解决世界块问题时反映棋盘状态,但是我在 GUI 上以正确格式表示块时遇到了一些问题
运行这组代码后,我将得到 A、BC、DE 的结果。但是 A 块不会在 B 应该在的相同位置反射,它将浮动在 B 和 C 中间的高度。
解决方案
您需要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
推荐阅读
- php - 我应该使用哪种获取模式来读取单个列值
- linux - 更改挂载目录会丢失磁盘数据?
- android - Webview android无法加载HTML5
- angular - Angular Form:输入内显示多个主题标签
- regex - 正则表达式如何在 Ruta 中工作?
- java - 使用类型输入创建对象
- c# - 更新表单多选无法在 ASP.NET MVC 中显示值
- knockout.js - 昏死。如何确定订阅了哪些可观察变量?
- excel - 试图在excel电子表格VB.Net上列出文件
- json - MarkLogic cts.jsonPropertyRangeQuery 日期和 $property-name