Окно сообщений Tkinter, в котором перечислены все пустые переменные - PullRequest
0 голосов
/ 15 февраля 2020

Я кодирую gui, который имеет несколько вариабельных значений для полей ввода и раскрывающихся меню. При нажатии кнопки «Рассчитать» я хочу проверить, все ли поля заполнены. Если нет, то должно появиться окно сообщения и список пустых виджетов. Я не понимаю, как это сделать ...

    def next_button_open_results(self):
        if not self.state.varCR.get() or self.state.varTR.get() \
                or self.state.annual_distance_entry.get() or self.state.varStyle or self.state.lifetime_entry.get():
            messagebox.showinfo("Invalid configuration", "Please select:" + ???)
        else:
"CALCULATE"

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете сохранить имена пустых виджетов в массиве и затем показать окно сообщения, если массив не пуст:

def next_button_open_results():
  widgets = []
  if self.state.varCR.get().strip() == '':
    widgets.append('varCR')
  if self.state.varTR.get().strip() == '':
    widgets.append('varTR')
  if self.state.varStyle.get().strip() == '':
    widgets.append('varStyle')
  if self.state.annual_distance_entry.get().strip() == '':
    widgets.append('annual_distance_entry')
  if self.state.lifetime_entry.get().strip() == '':
    widgets.append('lifetime_entry')
  if len(widgets) > 0:
    messagebox.showinfo('Invalid configuration', 'Please select: '+', '.join(widgets))
  else:
    # do whatever you want
    pass
...