【问题标题】:Module won't open properly / having trouble with opening file [duplicate]模块无法正确打开/打开文件有问题[重复]
【发布时间】:2020-09-29 23:01:26
【问题描述】:

我的代码由于某种原因无法运行。但是当我不在函数中打开我的文件时,它会起作用。所以我需要帮助在我的菜单文件中打开一个 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。

【问题讨论】:

    标签: python python-3.x tkinter


    【解决方案1】:

    尝试将clickgame = Tk() 放在包含mainloop() 函数的文件的开头

    【讨论】:

      【解决方案2】:

      您在脚本运行时创建了两个 Tk(),menu = Tk()clickgame = Tk(),尝试将第一个文件中的一个更改为 Toplevel() 并删除 clickgame.mainloop(),因为您将 clickgame 更改为顶层您的主 GUI。

      在第一个文件中:

      def Game(menu):
      
          mult = 1
          clicks = 0
          clickgame = Toplevel(menu)
          ...
          ...
      

      在第二个文件中,只需将menu 设为全局变量,就在menu = Tk() 之前,然后当您像这样ClickingGame.Game(menu) 调用函数ClickingGame 时发送此root,并在文件末尾启动@987654331 @:

      ...
      ...
      ...
      TitleLabel.pack()
      GameLabel.pack()
      ClickingGameButton.pack()
      main.mainloop()
      

      【讨论】:

      • 非常感谢,您为我节省了很多时间。但是第二个文件出现了一个错误,代码: import os import sys import ClickingGame mult = 1 clicks = 0 global menu 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() menu.mainloop()
      • 错误是什么?
      • 它说菜单没有定义
      • 答案已编辑,这应该可以工作!
      猜你喜欢
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 2019-10-31
      相关资源
      最近更新 更多