python - 背景图像未在程序中显示?
问题描述
所以我试图让这个图像在显示这个类时作为背景加载,但是,我的程序只是运行并且没有显示图像。我是python和一般编码的新手,所以我可能做错了一些很容易修复的错误,但是是的,在此先感谢!(只是一些上下文,我正在制作一个记忆游戏,如果需要更多代码,只需请求!)
import tkinter as tk # imports tkinter as tk
from tkinter import font as tkfont # imports font as tkfont
import random
import string
import sys
import time
import pygame
class SampleApp(tk.Tk): # class - Basically my Main hub
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.geometry("1024x576+155+60")
self.title("Memory Mania")
self.title_font = tkfont.Font(family='verdana', size=45, weight="bold", slant="italic")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (Login, MainMenu, Tutorial, Tutorial2, Difficulty, Settings,
EasyDifficulty, MediumDifficulty, HardDifficulty, InsaneDifficulty,=
EnterCharacterScreen, CorrectScreen, IncorrectScreen, Level2,
WinGameScreen):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("Login")
def show_frame(self, page_name):
frame = self.frames[page_name]
frame.tkraise()
class Login(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent, bg="#2699C3")
self.controller = controller
background_image = tk.PhotoImage("giphy.gif")
background_label = tk.Label(parent, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
background_label.image = background_image
解决方案
您正在尝试gif
在后台使用 a ,但tkinter
与 s 不能很好地配合使用,gif
因此您必须自己驱动动画。动画 gif 由单个文件中的多个帧组成。Tk
加载第一帧,但您可以通过在创建图像时传递索引参数来指定不同的帧。例如:
frame2 = PhotoImage(file="giphy.gif", format="gif -index 2")
如果您将所有帧加载到单独PhotoImage
的 s 中,然后使用计时器事件来切换正在显示的帧 ( label.configure(image=nextframe)
)。计时器的延迟可让您控制动画速度。除了超出帧数后无法创建帧之外,没有提供任何内容来为您提供图像中的帧数。
有关官方建议,请参阅照片Tk 手册页。
推荐阅读
- php - 当网站在其他设备上正常工作时,我在浏览器上收到“ERR_SSL_UNRECOGNIZED_NAME_ALER”的原因可能是什么?
- flutter - 如何在 Flutter 中使用 Google ML KIT 开发多检测器?
- javascript - 使用 Image URL 训练 Tensorflowjs 程序
- css - grid-row: 1 是做什么的?
- python - 谷歌字典结果抓取
- python - 返回字符串和布尔值的递归函数
- powershell - PowerShell New-ADUser 仍然创建禁用用户
- swift - 即使用户未登录,应用程序也不显示登录页面
- node.js - 无法在 Postman 中为简单的 Node.js 应用程序获得响应
- django - 我的订单没有保存。django中的表格