【问题标题】:My Tkinter button error我的 Tkinter 按钮错误
【发布时间】:2017-04-11 20:01:13
【问题描述】:

我正在尝试使用 python tkinter 创建一个 LagSwitch,但是我遇到了一个无法修复的错误,我是 tkinter 的新手。你能帮忙吗?

我运行脚本时的错误:

ActivateButton = Button(text="Activate",fg="green", bg="black",command=activate)
NameError: name 'activate' 没有定义

这是我的脚本:

#MAIN
from tkinter import *
import os
root = Tk()

#FRAMES
topFrame = Frame()
topFrame.pack(side=TOP)
bottomFrame = Frame()
bottomFrame.pack(side=BOTTOM)

#LABELS
MainLabel = Label(text="LagSwitch V0.1", fg="green", bg="black", font="arial")
MainLabel.pack()

#BUTTONS
QuitButton = Button(text="Close", command=quit, fg="red", bg="black", font="arial")
QuitButton.pack(side=BOTTOM)
ActivateButton = Button(text="Activate", fg="green", bg="black", command=activate)
ActivateButton.pack(side=TOP)
DeActivateButton = Button(text="Deactivate", fg="red", bg="black", command=deactivate)
DeActivateButton.pack(side=TOP)

#Activate/Deactivate command
def activate():
    os.system("networksetup -setairportpower airport on")
def deactivate():
    os.system("networksetup -setairportpower airport off")

#ROOT STUFF
root.geometry("500x300")
root.configure(background="black")
root.title("LagSwitch V0.1")
root.mainloop()

我能做什么?我是初学者,所以我没有那么聪明。如何改进脚本并修复我遇到的错误?我不明白。

【问题讨论】:

  • 我正在使用手机,所以我无法尝试。如果将激活和停用功能移到按钮上方会发生什么?
  • 作为错误状态,activate 在您的按钮定义中使用它时尚未定义。您只在几行之后定义了activate。因此,只需将您的 activatedeactivate 函数定义移到您的 #BUTTONS 部分即可。
  • 你必须定义一个函数之前在你的代码中引用它。这与 tkinter 无关,这只是 python 的工作方式。

标签: python tkinter


【解决方案1】:

如果您希望按钮具有处理函数,则需要在使用此函数之前声明它,如下所示:

def activate():
    os.system("networksetup -setairportpower airport on")

ActivateButton = Button(text="Activate", fg="green", bg="black", command=activate)

所以你需要在脚本中切换#Activate/Deactivate command#BUTTONS 部分。

【讨论】:

  • 非常感谢你们!!
【解决方案2】:
from tkinter import *

root = Tk()

def printName(event):
    print("Hello my name is User")


button_1 = Button(root, text="Press Me")
button_1.bind("<Button-1>", printName) 

root.mainloop()

尝试像我的小例子那样绑定按钮。

【讨论】:

  • 注意:print("Hello my name is User") 应该缩进。/
猜你喜欢
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
相关资源
最近更新 更多