Nano Hash - криптовалюты, майнинг, программирование

Python 3.3: ошибка со списком tkinter.ttk при извлечении текущего выбранного значения

Новичок в Python, но у меня возникли проблемы с полем со списком.

Я проверил форумы, но не видел ответа, чтобы остановить любую из ошибок, которые я получаю с полем со списком. Я получаю следующую ошибку:

"menuItem1 = self.cmbBxMen1.get() AttributeError: объект NoneType не имеет атрибута get"

root и frame установлены, класс — это Application, а метод, вызывающий ошибку, находится в том же классе, что и вызов и размещение метода виджета, но в другом методе. Свойство команды объекта кнопки настроено на использование метода Add_To_Menu, который получает значение, выбранное в поле со списком. Код выглядит следующим образом:

def __init__(self, master):

    super(Application, self).__init__(master)
    self.grid()
    self.create_widgets()



def create_widgets(self):

    data = Application.data

    self.cmbBxMen1 = Combobox(self, values = data, width = 60).grid(row=0, column=1, padx = 4, pady = 20)
    self.btnAdMen = Button(self, text = "Add to Menu", command = self.Add_To_Menu).grid(row=0, column=9, pady = 20, sticky = W)

def Add_To_Menu(self):

    menuItem1 = self.cmbBxMen1.get()

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно, чтобы вызвать эту ошибку?


Ответы:


1

Проблема в том, что widget.grid() на самом деле не возвращает виджет после помещения его в макет. Он возвращает None. Вы должны вызвать .grid() отдельно и то же самое с кнопкой.

self.cmbBxMen1 = Combobox(self, values = data, width = 60)
self.cmbBxMen1.grid(row=0, column=1, padx = 4, pady = 20)
06.04.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..