моя цель: иметь фоновое изображение, которое занимает полное окно дисплея. И затем на нем, поместите кнопки изображения, которые будут хорошо центрированы в этом окне (кнопки расположены в сетке). Изображение 1920X1080. У меня есть другой фрагмент кода, который следует точно такой же последовательности, и изображение появляется в фоновом режиме. Так полностью сбито с толку. Но хотелось правильно понять логику этого кода/вместо того, чтобы полагаться на удачу! .. Обратите внимание, что на другом рабочем коде я занимаюсь как местом, так и сеткой background_label !. С помощью этого кода кнопки вообще не отображаются. , когда я использую background_label (content ....), изображение появляется в фоновом режиме с кнопками спереди, но в этом случае все окно дисплея не занято. Изображение просто расширяется, чтобы заполнить область, занимаемую изображениями кнопок.фоновое изображение не работает правильно
root = Tk()
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
content = ttk.Frame(root, padding=(3,3,12,12))
print(root.winfo_screenwidth(), root.winfo_screenheight())
#prints as 1920 & 1080
#old background_image_file='waves1600x926.gif'
background_image_file='Lake.gif' #this is 1080X1920
background_image=PhotoImage(file=background_image_file)
background_label =ttk.Label(root,image=background_image) #tried content instead of root also
background_label.place(x=0, y=0,relwidth=1, relheight=1)
background_label.grid()
logos=['abc','cbs','nbc','fox','cnbc','amc','bet']
logobuttons=defaultdict(str)
logoimgs=defaultdict(str)
for logo in logos:
logoimgs[logo]=PhotoImage(file=LOGODIR+logo+'.gif')
logobuttons[logo]=ttk.Button(content,image=logoimgs[logo])
content.grid(column=0, row=0, sticky=(N,S,E,W))
col=0
row=0
maxcols=5
for logo in logos:
logobuttons[logo].grid(row=row,column=col,pady=5,padx=5)
if col == maxcols:
col=0
row=row+1
else:
col=col+1
root.mainloop()
Что вы хотите сказать? Просто генерал «почему это не работает»? –
Мой вопрос: что я должен изменить, чтобы он отображал кнопки поверх изображения. – jvi