2017-02-08 21 views
1

Этикетки не могут быть показаны в левом рамке. Я довольно новичок в графическом интерфейсе Python. Мой код любопытное выглядит следующим образом:Python -> Ярлыки не могут отображаться в рамке

from tkinter import * 

root = Tk() 

mainFrame = Frame(root, width=700, height=500) 
mainFrame.pack() 

leftFrame = Frame(mainFrame, bg="#c2c3c4") 
leftFrame.place(relheight=1, relwidth=0.34, anchor=W) 

label1 = Label(leftFrame, text="Label1") 
label2 = Label(leftFrame, text="Label2") 

label1.grid(columnspan=2, sticky=W, pady=(20, 0)) 
label2.grid(columnspan=3, sticky=W, pady=(5, 0)) 

root.mainloop() 

+0

Вполне вероятно, что есть проблема, потому что у вас есть сочетание 'pack',' place' и 'grid'. Старайтесь придерживаться одного менеджера геометрии. –

+1

@StevenSummers: нет, проблема не в том, что 'pack',' place' и 'grid' смешиваются вместе. Просто OP неправильно использует 'place'. Я считаю, что лучше всего использовать «сетку» и «пакет» вместе в приложении, просто имейте в виду, что вы не можете использовать их как для виджетов с одним и тем же родителем. –

+0

А, ладно, я думал, что лучше не смешивать их. –

ответ

1

В данном случае вы не видите надписи, потому что они на экране. leftFrame имеет якорь W, что означает, что вертикальный центр leftFrame составляет 0,0. Другими словами, половина кадра находится над видимой частью окна.

Быстрое исправление, подтверждающее это, заключается в использовании якоря NW вместо W, что приведет к тому, что верхний левый угол кадра будет находиться в верхнем левом углу его родителя.

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

+0

Отмечено. Спасибо за ответ. : D – Darrius

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

  • Нет связанных вопросов^_^