Графический интерфейс Tkinter не открывается в Pydev (Liclipse)


person Mikkel Bugge    schedule 19.04.2017    source источник
comment
Возможно, вы забыли включить import tkinter as tk в начало кода?   -  person Josselin    schedule 20.04.2017
comment
Нет, но, возможно, мне следовало добавить это в код, который я включил здесь. Я добавлю правильный код в вопрос, спасибо, что заметили. Я предполагаю, что код работает нормально, так как консоль не выводит ошибок - или вообще что-либо в этом отношении.   -  person Mikkel Bugge    schedule 20.04.2017


Ответы (1)


Вы уверены, что у вас все правильно настроено (рабочий каталог, путь python...) в Liclipse? Я только что попробовал новую установку, и после настройки Liclipse для запуска текущего проекта в Python 3.6 и после выбора основного файла проекта в качестве исходного кода он запускается и показывает окно с кнопкой, как и предполагалось, а также выводит текст на консоль.

Кроме того, инициализация кнопки таким образом не выглядит очень «питоновской». Я бы предпочел так:

# Main.py
import tkinter as tk;

class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        mytext = "Hello World\n(click me)"
        self.hi_there = tk.Button(self, text=mytext, command=self.say_hi)
        self.hi_there.pack(side="top")

        self.quit = tk.Button(self, text="QUIT", fg="red", command=root.destroy)
        self.quit.pack(side="bottom")

    def say_hi(self):
        print("hi there, everyone!")

root = tk.Tk()
app = Application(master=root)
app.mainloop()

Код выглядит чуть более читабельным и работает точно так же. Когда вы начнете расширять свой интерфейс, он будет состоять из многих строк, и, сократив две строки для каждой кнопки, вы сможете сделать его намного короче. Я кодировал приложение tkinter с более чем 1500 строками кода, и в тот момент я пообещал себе, что постараюсь научиться делать его более организованным и коротким;)

person Victor Domingos    schedule 20.04.2017
comment
Просто для головы, я видел ваш комментарий, спасибо, и в настоящее время я пытаюсь найти способ снова выполнить чистую установку Python. Давным-давно у меня были занятия, где требовалось, чтобы мы использовали менеджер пакетов, который позже вызывал у меня проблемы, и тогда я решил удалить его. Это вызвало некоторые проблемы с путями/ссылками в Python, и, возможно, это все еще вызывает их. - person Mikkel Bugge; 24.04.2017
comment
@MikkelBugge Действительно ли PyDev нужен для вашей установки? Я отлично справлялся с Atom (и некоторыми плагинами), например, с CodeRunner и Textwrangler. Я пробовал PyCharm, который, кажется, является одним из наиболее упоминаемых IDE для Python, но мне так и не удалось запустить из него приложения tkinter, поэтому я пропустил его. - person Victor Domingos; 24.04.2017
comment
Честно говоря, я просто выбрал первое, с которым большинство согласилось на разных форумах. Мне на самом деле не нужно ничего конкретного, и я стараюсь использовать как можно меньше пакетов, поэтому я уверен, что все пойдет - было бы неплохо что-нибудь более легкое, я проверю их, спасибо :-) - person Mikkel Bugge; 25.04.2017
comment
Кажется, ты прав. Я подозреваю, что Pydev настроен неправильно, поскольку tkinter работает в Pycharm. В итоге я попробовал Pycharm просто потому, что в него включен простой менеджер пакетов (у меня были проблемы с установкой pyserial для 3.6 самостоятельно), а очистка каталогов Python на Mac — это то, что мне сейчас лень делать. Но спасибо за предложения! - person Mikkel Bugge; 26.04.2017
comment
@MikkelBugge помните, что у меня были проблемы с использованием PyCharm с tkinter (не удалось запустить приложение tkinter из PyCharm). Не уверен, что он поддерживается. - person Victor Domingos; 26.04.2017