2015-04-07 6 views
0

Я пытаюсь сделать карточную игру lil '. Это один из игроков, против процессора, и это так же просто. Игра. Однако игры не забавны, если они не воспроизводятся правилами, и в этом случае .grid() не хочет играть по своим правилам (.grid(row, column, sticky). Код выполняется отлично, консоль не сообщает об ошибке, и он компилирует, выполняет и «работает» полностью. Однако метка изображения вообще не перемещается.Python 'grid()' игнорирует строки/столбцы/липкие опции

ПРИМЕЧАНИЕ: Я не уверен, что это из-за метода, который я использую для отображения изображений, если он не работает с изображениями, или он просто прослушивается.

Вот код, а также вывод.

Python

crdImg = [] 
usrStk = None 
cpuStk = None 
i = 1 

#define cards 

while i < 57: 
    i = i + 1 
    crdImg.append('img/cards/%s.png' % (i - 1)) 

usrStk = crdImg[54] 
cpuStk = crdImg[55] 

#define card images 

usrCrdImg = Image.open(usrStk) 
usrCrdBg = ImageTk.PhotoImage(usrCrdImg) 
usrCrd = tkinter.Label(self, text="", image=usrCrdBg, borderwidth=1) 
usrCrd.grid(row=4, column=4) 
usrCrd.image = usrCrdBg 
usrCrd.pack() 

Выход

enter image description here

+0

Кажется, что вы сначала используете 'grid', а затем переопределяете это с помощью' pack'. попробуйте удалить 'usrCrd.pack()'. Кроме того, я думаю, вы должны сделать «CardGame (root) .grid()» –

+0

Вы должны добавить тег tkinter для своего вопроса. –

ответ

2

Кажется, вы первые позиционирования этикетки с grid, но отвергая эту позицию с pack. Не используйте grid и pack менеджеров компоновки вместе!

Удалить строку usrCrd.pack() и сменить CardGame(root).pack() на CardGame(root).grid(), то это должно сработать.

Обратите внимание, что если вы не помещаете что-то в другие строки и столбцы, то usrCrd.grid(row=4, column=4) по-прежнему будет помещать карту в верхний левый угол, так как другие строки и столбцы имеют нулевую ширину и высоту.

Смежные вопросы