Python中的变量在通过Tkinter按钮定义后未写入文件
大家好。我在使用Tkinter(Python模块)制作GUI时遇到了这个问题。也就是说,我给按钮分配了一个命令,这是一个函数,包含程序在点击按钮后应该做的事情,这个命令就是,当按下按钮时,改变一个变量。好吧,只要修改它就行了,但当我试图将该值合并为字符串以进一步写入文件时,它根本不起作用。这是代码Python中的变量在通过Tkinter按钮定义后未写入文件,python,button,tkinter,Python,Button,Tkinter,大家好。我在使用Tkinter(Python模块)制作GUI时遇到了这个问题。也就是说,我给按钮分配了一个命令,这是一个函数,包含程序在点击按钮后应该做的事情,这个命令就是,当按下按钮时,改变一个变量。好吧,只要修改它就行了,但当我试图将该值合并为字符串以进一步写入文件时,它根本不起作用。这是代码 import os from tkinter import * root = Tk() gui = "" _path = "" def ButtonA_c
import os
from tkinter import *
root = Tk()
gui = ""
_path = ""
def ButtonA_command():
gui = " -w"
print(gui)
def ButtonB_command():
gui = " "
print(gui)
def ButtonC_command():
bat_file = open("fatty.bat", "w")
bat_file.write("pyinstaller --onefile" + gui + " " + EntryA.get())
bat_file.close()
ButtonA = Button(root, text= "GUI", command= ButtonA_command)
ButtonB = Button(root, text= "CMD e GUI", command= ButtonB_command)
ButtonC = Button(root, text= "Criar", command= ButtonC_command)
EntryA = Entry(root)
ButtonA.pack()
ButtonB.pack()
EntryA.pack()
ButtonC.pack()
root.mainloop()
您需要如下定义您的函数。否则,您将在函数范围内创建局部变量
gui
:
def ButtonA_command():
global gui
gui = " -w"
print(gui)
def ButtonB_command():
global gui
gui = " "
print(gui)
我知道这里发生了什么。运行ButtonA_command()时,会出现一个名为gui的新变量(因此有两个名为gui的变量,一个在函数中,一个在函数外)。使用
global gui
作为每个函数的第一行,它应该可以工作(在我的电脑上也可以)。
编辑:其他评论员的速度快了一点:)你需要写:
global gui
否则,在任何函数内部,它会将其视为该函数的一个新局部变量。到底什么不起作用?连接还是写文件?我不知道什么不起作用。我所知道的是,当我去查看我想要创建的文件时,变量值根本就不在那里,它似乎对我有用。它写入值(EntryA.get())连接。是不是程序似乎工作正常,但以后找不到该文件?它可能是你当前的工作目录。我想我找到了问题所在!您先单击ButtonA,然后单击ButtonB,然后单击ButtonC,对吗?