2015-11-01 52 views
0

我想在图像上显示文本。现在文本在图像的下面,或者如果我在网格中放置一行= 0消失。我假设它在图像背后。我似乎无法得到它的工作。我的代码是:python中的图像顶部的标签

from Tkinter import * 
from PIL import ImageTk 
import csv 
import time 

root = Tk() 

image = ImageTk.PhotoImage(file='C:\Users\Shawn\PycharmProjects\Test\Background.gif') 

var0 = StringVar() 
var1 = StringVar() 
var2 = StringVar() 
var3 = StringVar() 

label0 = Label(root, fg="white", textvariable=var0) 
label1 = Label(root, fg="white", textvariable=var1) 
label2 = Label(root, fg="white", textvariable=var2) 
label3 = Label(root, fg="white", textvariable=var3) 

# ---------------------------------------------------------------------- 
def csv_dict_reader(file_obj): 
    reader = csv.DictReader(file_obj, delimiter=',') 
    for column in reader: 
     if (column["Week"]) == (time.strftime("%U")): 
      var0.set(column["Parashat"]) 
      var1.set(column["Torah"]) 
      var2.set(column["Haftarah"]) 
      var3.set(column["Gospel"]) 

# ---------------------------------------------------------------------- 
if __name__ == "__main__": 
    with open("Torah.csv") as f_obj: 
     csv_dict_reader(f_obj) 

Label(root, image=image).grid(row=0, column=0) 
label0.grid() 
label1.grid() 
label2.grid() 
label3.grid() 
mainloop() 

我试图把行和列的label0.grid(行= 1,列= 1),所有的标签,所有的行数和列数一起。

我想要的结果是label0 - label3要居中在图像的顶部。图像是黑色和深蓝色,所以白色文字将显示良好。谢谢。

肖恩

回答

0

您可以通过添加文本选项将在照片标签做到这一点。然后在compound特征看格式化。它看起来像这样:

label=Label(image=image, text="Text", compound="center") 
+0

我已经尝试过,但由于我使用if语句进行标记,所有我得到的是数字而不是我正在寻找的数据。它不是我正在使用的静态文本,而是从一个.csv文件调用的数据,该文件取决于一周中显示的数据。我尝试过: – sdruch

+0

我试过,但因为我使用if语句进行标记,所以我得到的是数字而不是我正在寻找的数据。它不是我正在使用的静态文本,而是从一个.csv文件调用的数据,该文件取决于一周中显示的数据。我尝试过:label = Label(image = image,text = text0,compound =“center”),结果是:当它与Chayei Sarah一起拍照时,上面带有.5203​​6512的图片。只是不知道我在做什么错。 – sdruch