无论我使用什么方法导入tkinter,Python3都会给我这个错误或其他错误。
我在线搜索了我的问题的解决方案,但是没有一个有效。我正在运行最新版本的Ubuntu。
#!/usr/bin/env python3
from tkinter import *
def main():
main_window = tkinter.Tk()
main_window.title("free communism here")
click_function = print("WEWE")
communism_button = tkinter.button(text = "click for free communism", command = click_function, height = 40, width = 120)
communism_button.pack()
tkinter.mainloop()
main()
结果是:
Traceback (most recent call last):
File "communism button.py", line 10, in <module>
main()
File "communism button.py", line 4, in main
main_window = tkinter.Tk()
NameError: name 'tkinter' is not defined.
我不知道为什么该程序无法运行。它应该显示一个按钮,如果您按它,它应该显示“ WEWE”。对不起,我英语可能不好。
答案 0 :(得分:1)
尝试这种方式:
#!/usr/bin/env python3
from tkinter import *
def main():
main_window = Tk()
main_window.title("free communism here")
click_function = print("WEWE")
communism_button = Button(text = "click for free communism", command = click_function, height = 40, width = 120)
communism_button.pack()
main_window.mainloop()
main()
答案 1 :(得分:1)
问题在于您使用from tkinter import *
,然后将按钮功能用作tkinter.Button
。当您使用from xxx import *
时,就不再使用“ xxx”软件包名称了(所以仅使用Button()
)。否则,只需使用import tkinter
,然后再使用tkinter.Button()
。
对于较大的脚本,我个人更喜欢import xxx
,因为它更清楚方法的来源。
除此之外,您的代码仍然对“ click_function”存在另一个问题。您应该将其设为实际功能。而且tkinter.Button()的首字母为'B'
import tkinter
def click_function():
print("WEWE")
def main():
main_window = tkinter.Tk()
main_window.title("free communism here")
communism_button = tkinter.Button(text = "click for free communism", command = click_function, height = 40, width = 120)
communism_button.pack()
main_window.mainloop() # call here main_window instead of tkinter
main()