我有一个'Game'类,该类必须创建一个带有图像的窗口,这是我尝试过的代码,但是图像没有出现。该目录存在 不会产生错误
from tkinter import *
class Game():
def __init__(self):
self.tk = Tk()
self.tk.title(' ')
self.tk.resizable(0, 0)
self.tk.wm_attributes("-topmost", 1)
self.canvas = Canvas(self.tk, width=800, height=600)
self.canvas.pack()
self.tk.update()
self.bg = \
PhotoImage('C:\\Users\\iv4um\\ninjafight\\hj\\officelight.gif')
self.bgimage = self.canvas.create_image(0, 0, image=self.bg, \
anchor='nw')
self.tk.update()
我希望图像在屏幕上,但是我得到的只是空白屏幕,没有图像。图片为800 * 600像素,是.gif。
答案 0 :(得分:-1)
尝试使用枕头模块(PIL,python图像库),您应该使用它来将gif图像处理为图像...
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container-fluid container_mop">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<a class="navbar-brand" href="#"><img src="images/logo.png" class="center img-responsive logo_top"></a>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav navbar-left navbar_odstep">
<li class="mopy_menu_1"><a href="#">O mnie</a></li>
<li class=" mopy_menu_1 dropdown ">
<a href="#" class="mopy_menu_2 navbar_cor_1" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">gabinet <span class="caret"></span></a>
<ul class="dropdown-menu dropdownPadding">
<li class=" mopy_menu_dropdown"><a href="#">- Gdzie przyjmuje </a></li>
<li class=" mopy_menu_dropdown"><a href="#">- Badania </a></li>
<li class=" mopy_menu_dropdown"><a href="#">- Zabiegi</a></li>
<li class=" mopy_menu_dropdown"><a href="#">- Przygotowanie </a></li>
</ul>
</li>
<li class="mopy_menu_1"><a href="#">Usługi</a></li>
<li class="mopy_menu_1"><a href="#">Cennik</a></li>
<li class="mopy_menu_1"><a href="#">Artykuły</a></li>
</ul>
<ul class="nav navbar-nav navbar-right navbar_odstep">
<li class="mopy_menu_1"><a href="#">Kontakt</a></li>
</ul>
</div>
</div>
</nav>
.navbar_odstep {
padding-top: 50px;
padding-bottom: 40px;
}
/*menu top*/
.navbar-default .navbar-nav > li > a {
color: white;
}
.navbar-default .navbar-nav > li > a:hover {
color: white;
}
.navbar-default .navbar-nav > li > a:focus {
color: white;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:focus,
.navbar-default .navbar-nav > .open > a:hover {
background-color: transparent !important;
color: white !important;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover {
background-color: #4B617F !important;
color: white !important;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
background-color: #4B617F !important;
color: white !important;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #3C4052;
}
.dropdown-menu {
background-color: #4B617F !important;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #3C4052;
}
.navbar-default {
background-color: #3C4052;
border-color: #3C4052;
}
.dropdownSelector {
padding-top: 0px !important;
position: relative;
top: -4px;
text-align: center;
}
.navbar_cor_1 {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=1);
-moz-opacity: 1;
-khtml-opacity: 1;
opacity: 1;
}
.mopy_menu_1 {
text-transform: uppercase;
font-size: 16px;
font-weight: normal;
}
.mopy_menu_dropdown {
text-transform: none;
font-size: 16px;
font-weight: lighter;
}
.dropdownPadding {
padding-top: 20px;
padding-bottom: 20px;
}
@media screen and (min-width: 1800px) {
.container_mop{
width: 1750px;
background-color: black;
}
.dropdown-menu:before {
position: absolute;
top: -17px;
left: 10%;
display: inline-block;
border-right: 27px solid transparent;
border-bottom: 17px solid #ccc;
border-left: 27px solid transparent;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.dropdown-menu:after {
position: absolute;
top: -16px;
left: 10%;
display: inline-block;
border-right: 26px solid transparent;
border-bottom: 16px solid #4B617F;
border-left: 26px solid transparent;
content: '';
}
}
@media(min-width: 1700px) and (max-width: 1799px) {
.container_mop{
width: 1700px;
background-color: red;
}
}
@media(max-width: 480px) {
.odstepNadMenuFront {
background-color: red;
height: 120px;
}
.logo_top {
padding-top: 50px;
width: 90%;
}
.navbar_odstep {
padding-top: 50px;
padding-bottom: 0px;
}
.navbar_odstep{
padding:0 ;
}
}
答案 1 :(得分:-2)
如果要使用Tkinter模块,可以查看Play an animated gif in python with tkinter。虽然,答案使用Label来显示gif。
我建议您可以尝试使用pyglet模块,这更容易。
import pyglet
# giphy directory
giphy_file = "giphy.gif"
# make an animation object
animation = pyglet.resource.animation(giphy_file)
sprite = pyglet.sprite.Sprite(animation)
# create a window
win = pyglet.window.Window(width=sprite.width, height=sprite.height)
# background color = r, g, b, alpha of the window
green = 0, 1, 0, 1
pyglet.gl.glClearColor(*green)
@win.event
def on_draw():
win.clear()
sprite.draw()
pyglet.app.run()