Не могу импортировать tkinter, tkinter не определен - похоже, это не обычная проблема - PullRequest
0 голосов
/ 06 января 2019

Python3 выдаёт мне ту или иную ошибку, какой бы метод я не использовал для импорта tkinter.

Я искал в Интернете решение моей проблемы, но никто не помог Я использую последнюю версию 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». Извините за мой, вероятно, плохой английский.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Проблема заключается в том, что вы используете from tkinter import *, а затем используете функцию кнопки как tkinter.Button. Когда вы используете from xxx import *, вы больше не используете имя пакета 'xxx' (поэтому просто Button()). В противном случае просто используйте import tkinter, после чего вы используете tkinter.Button().

Лично я предпочитаю import xxx для больших скриптов, потому что более понятно, откуда берется метод.

Кроме того, в вашем коде по-прежнему есть другая проблема с функцией click_function. Вы должны сделать это фактической функцией. И tkinter.Button () с большой буквы '101' *

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()
0 голосов
/ 06 января 2019

Попробуйте так:

#!/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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...