Tkinter,框架内小部件内的小部件

时间:2019-03-16 05:32:06

标签: tkinter tkinter-layout

好吧,所以我不了解游戏开发,当然也不是全部。

所以,我一直在打开一个窗口(我已经做了),并且在需要时该窗口将显示不同的帧。

下面的代码打开窗口并打开框架:

from StartGame import Start_gameFrameTest
from tkinter import *
from PIL import ImageTk
from PIL import Image
def Game_window():
  window=Tk()
  window.title("C&D:FourSwords")
  window_width=window.winfo_screenwidth()
  window_height=window.winfo_screenheight()
  print(window_height,window_width)
  window.geometry("%dx%d+%d+%d"%(window_width,window_height,0,0)) 
  window.resizable(width=True, height=True) 
  Menu=Start_gameFrameTest.Start_game(window_width,window_height)  
Game_window()

然后打开的是此框架,此处将在标签内显示按钮:

from tkinter import *
from PIL import ImageTk
from PIL import Image
class Start_game(Frame):
    def __init__(game,window_width,window_height):
        game.window=super().__init__()
        game.background(window_width,window_height)
        game.Buttons(window_width,window_height)
        game.window.mainloop()
def background(game,window_width,window_height):
    game.window_width=window_width
    game.window_height=window_width
    game.file=open("directory.txt")
    game.name=game.file.read()
    game.photobg=Image.open(game.name)
    game.photobg=game.photobg.resize((window_width,window_height))
    game.imbg=ImageTk.PhotoImage(game.photobg)
    game.label=Label(game.window,image=game.imbg)
    game.label.image=game.imbg
    game.label.pack()
def Buttons(game,window_width,window_height):
    game.button_start=Button(game)
    game.photoB=Image.open(game.name)
    game.photoB=game.photoB.resize((100,200))
    game.imgb=ImageTk.PhotoImage(game.photoB)
    game.button_start.config(image=game.imgb)
    game.button_start.image=game.imgb
    game.button_start.place(game.window,in_=game.label, x=((window_width)/2),y=((window_height)/2))

这当然只是一个测试样本,但存在相同的问题,这里还有错误代码:

  

Python 3.7.1(v3.7.1:260ec2c36a,2018年10月20日,14:57:15)[MSC v.1915 64   win32上的位(AMD64)]键入“帮助”,“版权”,“信用”或   “ license()”了解更多信息。

     

重新启动:D:\ Create and   Destroy \ FourSwords \ Create_And_Destroy_Four_Swords.py追溯(大部分   最近通话结束):文件“ D:\ Create and   Destroy \ FourSwords \ Create_And_Destroy_Four_Swords.py”,第14行       Game_window()文件“ D:\ Create and   Destroy \ FourSwords \ Create_And_Destroy_Four_Swords.py”,第13行   游戏窗口
  Menu = Start_gameFrameTest.Start_game(window_width,window_height)文件   “ D:\ Create and Destroy \ FourSwords \ StartGame \ Start_gameFrameTest.py”,
   init 游戏中的第8行。Buttons(window_width,window_height)文件   “ D:\ Create and Destroy \ FourSwords \ StartGame \ Start_gameFrameTest.py”,
  按钮中的第34行
  game.button_start.place(game.window,in_ = game.label,   x = {((window_width)/2),y=((window_height)/2))File"C:\Users\owner\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 2188, in place_configure + self._options(cnf, kw)) _ tkinter.TclError:无法将。!start_game。!按钮相对于。!label放置

请不要执行该站点执行的操作,而只是给哦,您应该使用它,然后走开,请解释我应该如何以及为什么使用它。

我没有时间去尝试和错误地回答你含糊的答案,这使我很烦。因为如果我能做到,那我就不会在这里。

0 个答案:

没有答案