由于某些原因,我的代码无法正常工作。但是,当我不使用函数打开文件时,它将起作用。因此,我需要帮助来打开菜单文件中的python文件。这是代码:
第一个文件:
from tkinter import *
def Game():
mult = 1
clicks = 0
clickgame = Tk()
clickgame.geometry("500x500")
clickgame.title("Techno Clicker")
def buttonCommand():
global clicks
clicks += 1*(mult)
clickslabel.config(text=clicks)
def multiplyerX1():
global clicks
global mult
if clicks > 99:
clicks -= 100
mult += 1
clickslabel.config(text=clicks)
else:
lickslabel.config(text="Not Enough clicks")
def multiplyerX5():
global clicks
global mult
if clicks > 499:
clicks -= 500
mult += 5
clickslabel.config(text=clicks)
else:
clickslabel.config(text="Not Enough clicks")
def multiplyerX10():
global clicks
global mult
if clicks > 999:
clicks -= 1000
mult += 10
clickslabel.config(text=clicks)
else:
clickslabel.config(text="Not Enough clicks")
Background_btn = PhotoImage(file="/Users/PrivateInfo/Desktop/ClickImage-3.png")
clickslabel = Label(clickgame, text="0 Clicks")
clickButton = Button(clickgame, image=Background_btn, command=buttonCommand, borderwidth=0)
clickmultX1 = Button(clickgame, text="Buy Click Multiplyer x1 (Costs 100C)", command=multiplyerX1, padx = 10, pady = 5)
clickmultX5 = Button(clickgame, text="Buy Click Multiplyer x5 (Costs 500C)", command=multiplyerX5, padx = 10, pady = 5)
clickmultX10 = Button(clickgame, text="Buy Click Multiplyer x10 (Costs 10000C)", command=multiplyerX10, padx = 10, pady = 5)
clickslabel.pack()
clickButton.pack()
clickmultX1.pack()
clickmultX5.pack()
clickmultX10.pack()
clickgame.mainloop()
第二个文件:
from tkinter import *
import os
import sys
import ClickingGame
mult = 1
clicks = 0
menu = Tk()
q = 0
def firegame():
global q
ClickingGame.Game()
TitleLabel = Label(menu, text='Welcome To Techno Play')
GameLabel = Label(menu, text='Games:')
ClickingGameButton = Button(menu, text='Clicking Game', command=firegame)
TitleLabel.pack()
GameLabel.pack()
ClickingGameButton.pack()
每次运行此命令时,我都会收到一条错误消息,说_tkinter.TclError: image "pyimage1
不存在。”但是,如果单独运行第一个文件,它将运行良好。我使用的是python idle 3.8.2。
答案 0 :(得分:0)
脚本运行时,您创建了两个Tk(),menu = Tk()
和clickgame = Tk()
,尝试将第一个文件中的一个Tk()跟踪到Toplevel()
,并删除clickgame.mainloop()
,因为您将clickgame
更改为主GUI的顶层。
在第一个文件中:
def Game(menu):
mult = 1
clicks = 0
clickgame = Toplevel(menu)
...
...
在第二个文件中,只需将menu
设为全局变量,就在menu = Tk()
之前,然后在调用函数{@ {1}}这样的ClickingGame并在{文件末尾开始root
:
ClickingGame.Game(menu)
答案 1 :(得分:0)
尝试将clickgame = Tk()
放在包含mainloop()
函数的文件的开头