Пытаетесь написать инструмент Python, используя tkinter, но окно появляется? - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь построить простой калькулятор сумм, но окно tkinter появляется пустым без каких-либо ошибок.Я запускаю его в PyCharm на последней MacOS-10.14 и с последней версией Python-3.7.

Я не могу понять, что мне не хватает.Я уверен, что это что-то очевидное, но я думаю, мне просто нужна свежая пара глаз.Любая помощь будет высоко ценится.

Вот код:

import tkinter as tk


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

        self.pack()


# create the application
app = Application()
app.master.title("Sumator")
app.master.minsize(width=1000, height=500)

# start the program
app.mainloop()


def __init__(self, master=None):
    super().__init__(master)

    self.pack()
    self.create_widgets()


def create_widgets(self):
    # create widgets
    self.firstNumberEntry = tk.Entry()
    self.plusSign = tk.Label(text="+")
    self.secondNumberEntry = tk.Entry()
    self.equalSign = tk.Label(text="=")
    self.resultLabel = tk.Label(text="Result...", bg="green", fg="white")
    self.calculateButton = tk.Button(text="Calculate", command=self.calculate)

    # place widgets
    self.firstNumberEntry.pack(side="left")
    self.plusSign.pack(side="left")
    self.secondNumberEntry.pack(side="left")
    self.equalSign.pack(side="left")
    self.resultLabel.pack(side="left")
    self.calculateButton.pack(side="left")


def calculate(self):
    first_value = float(self.firstNumberEntry.get())
    second_value = float(self.secondNumberEntry.get())
    result = first_value + second_value
    self.resultLabel.config(text=str(result), bg="green", fg="white")

1 Ответ

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

Ваши методы класса определены вне класса, и у вас есть def __init__(self, master=None) дважды.

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):
        # create widgets
        self.firstNumberEntry = tk.Entry()
        self.plusSign = tk.Label(text="+")
        self.secondNumberEntry = tk.Entry()
        self.equalSign = tk.Label(text="=")
        self.resultLabel = tk.Label(text="Result...", bg="green", fg="white")
        self.calculateButton = tk.Button(text="Calculate", command=self.calculate)

        # place widgets
        self.firstNumberEntry.pack(side="left")
        self.plusSign.pack(side="left")
        self.secondNumberEntry.pack(side="left")
        self.equalSign.pack(side="left")
        self.resultLabel.pack(side="left")
        self.calculateButton.pack(side="left")


    def calculate(self):
        first_value = float(self.firstNumberEntry.get())
        second_value = float(self.secondNumberEntry.get())
        result = first_value + second_value
        self.resultLabel.config(text=str(result), bg="green", fg="white")

# create the application
app = Application()
app.master.title("Sumator")
app.master.minsize(width=1000, height=500)

# start the program
app.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...