模块无法正常打开/无法打开文件

时间:2020-09-29 23:01:26

标签: python python-3.x tkinter

由于某些原因,我的代码无法正常工作。但是,当我不使用函数打开文件时,它将起作用。因此,我需要帮助来打开菜单文件中的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。

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()函数的文件的开头