Tkinter frame expand показывает только половину моего окна - PullRequest
2 голосов
/ 06 февраля 2020

Я пытаюсь создать телефон в tkinter и использую кадры, но изображение обрезается пополам. Кто-нибудь знает почему? https://i.stack.imgur.com/mOtEn.png

import tkinter as tk

def raiseframe(frame):
    frame.tkraise()

root = tk.Tk()

bgImage = tk.PhotoImage(file="Phone.gif")
WALogo = tk.PhotoImage(file="whatsappLogo.gif")
width = bgImage.width()
height = bgImage.height()

root.title("Phone")
root.geometry("%dx%d+0+0" % (width, height))

main = tk.Frame()
whatsapp = tk.Frame()

for frame in (main, whatsapp):
    frame.pack(fill = tk.BOTH, expand = True)

#Mainscreen:
canvas = tk.Canvas(main, width = width, height = height, bg = "black")
canvas.create_image((width / 2, height / 2), image = bgImage)
canvas.place(x = 0, y = 0)
WAB = tk.Button(main, image = WALogo, command = lambda: raiseframe(whatsapp))
WAB.place(x = 35, y = 85)

raiseframe(main)
root.mainloop()

1 Ответ

2 голосов
/ 06 февраля 2020

Я полагаю, что вы добавили изображение в рамку, занимающую до половины экрана. Вы можете либо:

  • изменить размеры рамки

  • добавить изображение к root следующим образом:

canvas = tk.Canvas(root, width = width, height = height, bg = "black")
canvas.create_image((width / 2, height / 2), image = bgImage)
...