Я изучаю Python и решил создать калькулятор для равномерного движения линий с ООП и Tkinter. И поскольку мне понадобилась пара полей ввода, я создал для него класс, но я получаю ошибки при попытке извлечь текст. Вот код:
from tkinter import *
root = Tk() # Crea una ventana basica. SIEMPRE se debe utilizar
root.geometry('350x200') # Setea las dimensiones de la ventana
root.title("Simple MRU Calculator.")
class labels: # Crea labels de texto
def __init__(self, texto, fuente, tamañoFuente, columna, rowa):
self = Label(root, text=texto, font=(fuente, tamañoFuente)
).grid(column=columna, row=rowa)
class entryBox: # Crea entryboxes
def __init__(self, largo, columna, rowa):
self = Entry(root, width=largo)
self.grid(column=columna, row=rowa)
entryBox_Distancia = entryBox(10, 1, 0)
entryBox_Velocidad = entryBox(10, 1, 1)
entryBox_TiempoF = entryBox(10, 1, 2)
entryBox_TiempoI = entryBox(10, 1, 3)
def calculando():
entryBoxDT = entryBox_Distancia.get()
print(entryBoxDT)
theLabel_Uno = labels('Distancia Inicial:', 'Arial', 11, 0, 0)
theLabel_Dos = labels('Velocidad', 'Arial', 11, 0, 1)
theLabel_Tres = labels('Tiempo Final', 'Arial', 11, 0, 2)
theLabel_Cuatro = labels('Tiempo Inicial', 'Arial', 11, 0, 3)
boton_Uno = Button(root, text='Calcular', command=calculando)
boton_Uno.grid(column=1, row=5)
theLabel_Cinco = labels('n', 'Arial', 11, 1, 4)
root.mainloop() # Inicia la ventana
Ошибка, которую я получаю с этим: {{Х0}}
Как я могу получить текст из каждого поля ввода?
1 ответ
Ваша проблема в том, что вы не наследуете от виджета ввода. Простое размещение self = whatever
ничего не делает. Чтобы сделать эту работу используйте это:
class entryBox(Entry): # inherit from the entry widget
def __init__(self, largo, columna, rowa):
super().__init__(width=largo) # call the init method of the entry widget.
self.grid(column=columna, row=rowa)
Теперь entryBox
является фактическим экземпляром виджета ввода.
Это - хороший учебник, посвященный наследству в Python.
И Это уходит на большую глубину, почему переопределить себя не будет работать.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.