2016-07-23 50 views
0

我與網格佈局掙扎 - 基本上我想在這樣的循環打印一些數據: enter image description hereTkinter的網格佈局在環

但不能由我自己看着辦吧。我設法使之成爲第一個進入正常,但只是工作 - 我的代碼:

from tkinter import * 
from PIL import Image, ImageTk 
import urllib.request 
import io 

app = Tk() 
images = [] 

for i in range(0, 8): 
    text1 = Label(font=("Helvetica",10), text="top, left", cursor="hand2") 
    text2 = Label(font=("Helvetica",10), text="top, right") 
    text3 = Label(font=("Helvetica",10),text="lower") 

    image = "https://www.gravatar.com/avatar/b9630126afbff209bb068195307a5e4c?s=328&d=identicon&r=PG" 
    get_image = urllib.request.urlopen(image).read() 
    im1 = Image.open(io.BytesIO(get_image)) 
    im_small = im1.resize((70, 70)) 
    im = ImageTk.PhotoImage(im_small) 
    image1 = Label(app, image=im) 
    images.append(im) 

    image1.grid(rowspan=2, column=0, sticky=W) 
    text1.grid(row=0, column=1, sticky=W) 
    text2.grid(row=0, column=2, sticky=W) 
    text3.grid(row=1, column=1, sticky=W) 

app.mainloop() 

和結果:

enter image description here

我也試過這樣:

from tkinter import * 
from PIL import Image, ImageTk 
import urllib.request 
import io 

app = Tk() 
images = [] 

for i in range(0, 8): 
    text1 = Label(font=("Helvetica",10), text="top, left", cursor="hand2") 
    text2 = Label(font=("Helvetica",10), text="top, right") 
    text3 = Label(font=("Helvetica",10),text="lower") 

    image = "https://www.gravatar.com/avatar/b9630126afbff209bb068195307a5e4c?s=328&d=identicon&r=PG" 
    get_image = urllib.request.urlopen(image).read() 
    im1 = Image.open(io.BytesIO(get_image)) 
    im_small = im1.resize((70, 70)) 
    im = ImageTk.PhotoImage(im_small) 
    image_cover = Label(app, image=im) 
    images.append(im) 

    image_cover.grid(rowspan=2, column=0, sticky=W) 
    text1.grid(row=i+1, column=1, sticky=W) 
    text2.grid(row=i+1,column=2) 
    text3.grid(row=i+2, column=1, sticky=W) 

app.mainloop() 

由於圖片應該佔據兩行(我們稱之爲1和2),「左上角」應該在第1列的第1行,第2列的「右上角」以及第2行的較低位置。

+0

似乎你已經錯誤地使用了循環。你真的在循環後面用過「我」嗎?首先,讓我們學習如何使用循環創建標籤。 –

+0

我知道我需要**我**,但我不知道如何正確地做到這一點,所以圖像將佔用兩行+一列,但仍然能夠填充兩行作爲附加的圖片。 – PotatoBox

回答

1

這是你在找什麼:

from tkinter import * 
root = Tk() 
root.geometry("500x500") 

imgvar = PhotoImage(file="world.gif") 

for i in range(5): 
    Label(root, image=imgvar, bg='red', bd=10, relief='groove').grid() 
    Label(root, text="Upper", bg='blue', bd=5, relief='groove').grid(column=1, row=i, sticky=N) 
    Label(root, text="Lower", bg='green', bd=5, relief='groove').grid(column=1, row=i, sticky=S) 

+0

非常好,加入_pady_一切都很好! – PotatoBox