Я просто хочу, чтобы, когда я набираю свое имя в поле ввода, то появлялась другая запись с добавленным текстом.Идея набрать в записи ниже, и после этого она показывается в большой записи. Я искал это решение, но только что нашел место в Label.Я не хочу в лейбле.Окно больше, нужно перетащить, чтобы показать запись.Вот картинка, которую я использую в этом сценарии:
from tkinter import *
from PIL import Image, ImageTk
root = Tk()
cat = Entry(root)
cat.place(x=48, y=25, width= 350, height=140)
user = Entry(root)
user.place(x=75, y=550)
btn = Button(root, text='START')
btn.place(x=220, y=410)
root.mainloop()
#
Хорошо, это работает так, как вы мне сказали, спасибо!
Но теперь я столкнулся с другой проблемой.
Проблема в том, что я вставляю функцию игры во второе окно.Я тестировал в одном окне, и оно работает, но когда я помещаю функцию во второе окно, выдает ошибку, когда я нажимаю кнопку «Пуск»: '' 'user_try = int (txt.get ()) NameError: name' txt 'не определено '' '
Когда я нажимаю кнопку сброса, появляется еще одна ошибка:' '' user_try = int (txt.get ()) NameError: имя 'txt' не определено '' '
Итак, я знаю, что отсутствует определение, но я не знаю, как сделать ссылку на эту команду, которая находится во втором окне.Как я уже сказал, работая только с одним окном, программа работает.
Может быть, я должен использовать класс, я не знаю, но я хочу сделать так, чтобы я начал.Однако, если нет другого способа сделать то, что я делаю, пойдем.
Я просто упростил сценарий здесь, на самом деле основной сценарий больше, поэтому моя идея заключается в том, что при открытии программы возникаетокно и пользователь прочитают инструкцию по игре и перейдите во второе окно.В окне есть изображения и несколько скрытых кнопок на следующем рисунке, поэтому взаимодействие с окружающей средой будет интерактивным.Число догадок - это только начало.После этого будут новые вызовы.Я очень взволнован, делая это, но я застрял в этой точке.Часть первая, которую я закончил, картинки, скрытые кнопки - это именно то, что я хочу, но проблема на этом останавливается.
from tkinter import *
from PIL import Image, ImageTk, ImageSequence
import random
from tkinter import messagebox
pc = random.randint(1,10)
def reset():
global pc
pc = random.randint(1,10)
cat['text'] = 'Ok! Lets Try Again!'
def openwin2():
win1.withdraw()
win2 = Toplevel()
win2.geometry('350x300+180+100')
win2.title('second window')
txt = Entry(win2)
txt.place(x=10,y=10)
cat = Label(win2,wraplength=300)
cat.place(x=10,y=50)
cat.config(text='Hi! I Am thinking a number between 1 and 10.')
btn = Button(win2,text='start',command=check)
btn.place(x=30, y=150)
btn2 = Button(win2, text='reset', command=reset)
btn2.place(x=110,y=150)
win2.mainloop()
def check():
user_try = int(txt.get())
if user_try < pc:
msg = 'Hmmmm... the number, which I thought of, is greater than this.'
elif user_try > pc:
msg = 'How about trying a smaller number ?!'
elif user_try == pc:
msg = 'Well Done! You guessed! It was %s the number!' % user_try
else:
msg = 'Something Went Wrong...'
cat['text'] = msg
win1 = Tk()
win1.title('First Window')
win1.geometry('350x300')
user = Label(win1,text='first window')
user.place(x=10,y=10)
btn1 = Button(win1,text='Open Window 2', command=openwin2)
btn1.place(x=10,y=50)
win1.mainloop()