Фрагмент кода:
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog
class BirdsEye(tk.Tk):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.title("Hello Tkinter")
self.geometry("480x320")
self.resizable(width = False, height = False)
FeatureExtractionView(self).grid(sticky=(tk.E + tk.W + tk.N + tk.S))
class FeatureExtractionView(tk.Frame):
def __init__(self, parent = None, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
self.object_list = ['human', 'cat']
self.draw_widgets(parent)
def get_object_list(self):
return self.object_list
def draw_widgets(self, parent):
# Parent container to hold widgets for parameter selection
container = ttk.LabelFrame(parent, text = "Feature Extraction Parameters")
container.grid(row = 0, column = 0, padx = 5, pady = 5)
parent.rowconfigure(0, weight = 1)
parent.columnconfigure(0, weight = 1)
object_combo = ttk.Combobox(container, self.get_object_list())
object_combo.grid(row = 1, column = 0)
container.rowconfigure(1, weight = 1)
container.columnconfigure(0, weight = 1)
Трассировка стека:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-144-8f8ef2b5022b> in <module>
----> 1 app = BirdsEye()
2 app.mainloop()
<ipython-input-141-cead3bb4d34c> in __init__(self, *args, **kwargs)
5 self.geometry("480x320")
6 self.resizable(width = False, height = False)
----> 7 FeatureExtractionView(self).grid(sticky=(tk.E + tk.W + tk.N + tk.S))
<ipython-input-143-b47db92b9d00> in __init__(self, parent, *args, **kwargs)
6 self.parent = parent
7 self.object_list = ['human', 'cat']
----> 8 self.draw_widgets(parent)
9
10 def get_object_list(self):
<ipython-input-143-b47db92b9d00> in draw_widgets(self, parent)
18 parent.columnconfigure(0, weight = 1)
19
---> 20 object_combo = ttk.Combobox(container, self.get_object_list())
21 object_combo.grid(row = 1, column = 0)
22 container.rowconfigure(1, weight = 1)
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given
Я создаю небольшой пользовательский интерфейс для проекта колледжа. Представление должно иметь поле со списком значений. Я пытаюсь передать переменную-член object_list в комбинированный список в виджете LabelFrame с помощью метода _getter. Тем не менее, это не работает. Также, если у кого-то есть хорошие ресурсы для tkinter, пожалуйста, предоставьте его.
Обновление: добавлена трассировка стека.