Я только начал использовать Tkinter и пытался создать простое всплывающее окно в Python. Я скопировал и вставил простой код с сайта:

from Tkinter import *

master = Tk()
Label(master, text="First Name").grid(row=0)
Label(master, text="Last Name").grid(row=1)

e1 = Entry(master)
e2 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)

mainloop( )

Этот код требует очень много времени для запуска, это было почти 5 минут! Разве нельзя просто запустить этот фрагмент? Кто-нибудь может сказать мне, как использовать Tkinter?

Я использую ноутбук Jupyter и Python версии 2.7. Я бы попросил решение только для этой версии.

7
sky_bird 29 Авг 2017 в 12:06

3 ответа

Лучший ответ
from Tkinter import *

def printData(firstName, lastName):
    print(firstName)
    print(lastName)
    root.destroy()

def get_input():

    firstName = entry1.get()
    lastName = entry2.get()
    printData(firstName, lastName)


root = Tk()
#Label 1
label1 = Label(root,text = 'First Name')
label1.pack()
label1.config(justify = CENTER)

entry1 = Entry(root, width = 30)
entry1.pack()

label3 = Label(root, text="Last Name")
label3.pack()
label1.config(justify = CENTER)

entry2 = Entry(root, width = 30)
entry2.pack()

button1 = Button(root, text = 'submit')
button1.pack() 
button1.config(command = get_input)

root.mainloop()

Скопируйте приведенный выше код в редактор, сохраните его и запустите с помощью команды,

python sample.py

Примечание. Приведенный выше код очень расплывчатый. Написали это так, чтобы вы поняли.

-1
DeathJack 29 Авг 2017 в 10:12

Ваш код работает просто отлично. Тем не менее, для тех, кто использует python3, имя модуля изменилось с Tkinter на tkinter, все строчными буквами. Измените имя, и вы готовы!

В двух словах.

Python2:

from Tkinter import *

Python3:

from tkinter import *

Посмотрите на скриншот ниже

Screenshot

7
Aminu Kano 14 Ноя 2017 в 02:14

Вы можете создать всплывающее информационное окно следующим образом:

showinfo("Window", "Hello World!")

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

win = tk.Toplevel()
win.wm_title("Window")

label = tk.Label(win, text="User input")
label.grid(row=0, column=0)

button = ttk.Button(win, text="Done", command=win.destroy)
button.grid(row=1, column=0)
0
matsbauer 29 Авг 2017 в 09:09