首页 > 解决方案 > 使用 Python 函数更改全局变量

问题描述

我正在尝试用我的函数修改一个全局变量,称为“提交”。该函数应该更改变量“start_stop_key”和“delay”。我使用“tkinter”作为“tk”和 pynput 库。我的代码如下:

# four variables are created to 
# control the auto-clicker
# delay (in seconds)
delay = 0.001
# Button.right, Button.left, Button.middle for their respective mouse buttons
button = Button.right
start_stop_key = KeyCode(char=']')
stop_key = KeyCode(char='[')

def submit():
    delay = delay_entry.get()
    start_stop_key = start_stop_key_entry.get()

root = tk.Tk()
root.title("Buggie Autoclicker")

canvas = tk.Canvas(root, height=600, width=470)
canvas.pack()

delay_label = tk.Label(root, text="Time between clicks(in seconds):", font=("Arial", 14))
delay_label.pack(pady=20)
delay_entry = tk.Entry(root)
delay_entry.pack(pady=10)

start_stop_key_label = tk.Label(root, text="Key to toggle the autoclicker on and off:", font=("Arial", 14))
start_stop_key_label.pack(pady=20)
start_stop_key_entry = tk.Entry(root)
start_stop_key_entry.pack(pady=10)

submitbutton = tk.Button(root, text="Submit Values", command=submit())
submitbutton.pack(pady=20)

root.mainloop()

标签: python

解决方案


使用 global 关键字来修改全局变量。

在你的情况下:

def submit():
    global delay
    global start_stop_key
    delay = delay_entry.get()
    start_stop_key = start_stop_key_entry.get()

推荐阅读