Ошибка с атрибутом TKinter Simpledialog - PullRequest
0 голосов
/ 08 апреля 2019

В настоящее время я пытаюсь написать в нескольких основных пользовательских полях ввода, используя модуль tkinter в Python 3.6 (через Spyder). Я могу подтвердить, что модуль загружается, и что опция выбора simpledialog появляется, но я продолжаю получать следующую ошибку:

AttributeError: модуль 'tkinter' не имеет атрибута 'simpledialog'

Изображение tkinter simpledialog

Я пытался искать другие варианты, но другие параметры ввода пользователя, похоже, не работают на моем интерфейсе Python. Либо происходит сбой, либо данные не структурированы должным образом.

Интересно, что в прошлом я делал подобные вещи в Python без ошибок, но это продолжает придумывать этот конкретный кусок программирования.

import tkinter as tk
import pyodbc as py
py.pooling = False

## INPUT YOUR USER ID AND PASSWORD AND DECLARE YOUR CONNECTION
## THE DIALOG BOXES MAY POP OPEN ON ANOTHER SCREEN
## THE PASSWORD INPUT IS MASKED AND WILL NOT SHOW IN THE
## VARIABLE EXPLORER

ID = tk.simpledialog.askstring("Please input your username.","Username: ")
PW = tk.simpledialog.askstring("Please input your password.",
                               "Password: ", show='*')
CONN = tk.simpledialog.askstring("Please input your connection.",
                                 "Connection: ")

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

Заранее спасибо за совет!

1 Ответ

1 голос
/ 08 апреля 2019

simpledialog не в tkinter, а в tkinter.simpledialog, и вы должны импортировать его

import tkinter as tk
import tkinter.simpledialog

root = tk.Tk() # create main window
#root.iconify() # minimize main window 
root.withdraw() # hide main window 

answer = tkinter.simpledialog.askstring("Question", 'Your name:')
print(answer)

#root.destroy()  # should work without it
#root.mainloop() # should work without it

См. tkinter modules

...