Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在消息窗口中阅读和播放单词_Python_Tkinter - Fatal编程技术网

Python 在消息窗口中阅读和播放单词

Python 在消息窗口中阅读和播放单词,python,tkinter,Python,Tkinter,我的代码有问题,word->word=word=str Entry.get input\u text中出现了一条错误消息,这显然是指打印全文,当我希望它在非根窗口但在阅读窗口中工作时,它无法按我所希望的方式工作 这是代码: 从tkinter进口* 导入系统 将tkinter作为tk导入 从tkinter导入消息框 ----- 根=Tk 根标题窗口 ----- 伊库纳沙豆根 函数=Labelroot,文本=选择操作! 函数x=70,y=10 卢埃托伊蒙托库迪醇酸 def读取: 读取窗口=Tk re

我的代码有问题,word->word=word=str Entry.get input\u text中出现了一条错误消息,这显然是指打印全文,当我希望它在非根窗口但在阅读窗口中工作时,它无法按我所希望的方式工作

这是代码:

从tkinter进口* 导入系统 将tkinter作为tk导入 从tkinter导入消息框 ----- 根=Tk 根标题窗口 ----- 伊库纳沙豆根 函数=Labelroot,文本=选择操作! 函数x=70,y=10 卢埃托伊蒙托库迪醇酸 def读取: 读取窗口=Tk reading_window.titleRead函数 frame=Framereading\u窗口 frame.pack 阅读文本=标签阅读窗口,文本=在框中输入文本! 读取文本。放置X=70,y=10 单词= word=strEntry.getinput\u文本 框架johon kirjoitetaan 输入\文本=入口读取\窗口 输入文本。放置X=55,y=30 卢埃库纳·科科·贾·西约图斯 阅读窗口几何300x300+100+100 卢萨娜·帕尼克·乔卡·托维斯丁 打印按钮=tk.button阅读窗口,文本='显示键入的文本',高度=1,宽度=15,命令=打印1 打印按钮。放置X=80,y=60 text\u a\u tip=Labelreading\u窗口,text=键入的文本将显示在消息窗口中! text_a_tip.placex=50,y=90 def打印1: tk.messagebox.showinfo'Kirjoitetun tekstin tulostus viestiikkunaan',Entry.getinput_text def关闭: 阅读窗口 read\u close\u button=tk.button阅读窗口,文本='关闭阅读功能',高度=1,宽度=20,命令=close 读取关闭按钮。放置X=60,y=270 read.mainloop 卢埃托明托·库迪·洛普 read_function=tk.Buttonroot,text='read function',高度=1,宽度=15,命令=read read_function.placex=55,y=35 ohjleman Loppettamisen koodi alkaa def退出程序: MsgBox=tk.messagebox.askquestion'Quit program','您确定要关闭程序吗?',icon='warning' 如果MsgBox==“是”: 毁灭 sys.exit0 其他: tk.messagebox.showinfo“回来了”,“现在你回来了!” 退出程序按钮=tk.Buttonroot,text='Close program',高度=1,宽度=15,命令=quit\u prog 退出程序按钮。placex=50,y=220 奥杰尔曼·洛佩塔米森·库迪·洛普 ----- ----- 根。geometry250x250+20+60 450x450=leveysxkorkeus+20+40=vasenreuna+yl÷reuna root.mainloop
我真的不知道wordvariable是做什么用的,但我假设您需要它。不能使用在其所在行下定义的变量

    word = ""
    word = str(Entry.get(input_text))   # input_text is defined below, interpreter doesn't know what is it  "input_text" yet.

    input_text = Entry(reading_window)
    input_text.place(x=55, y=30)
这应该是相当不错的

    input_text = Entry(reading_window)
    input_text.place(x=55, y=30)
    word = ""
    word = str(Entry.get(input_text))   # now there is no error
这并不能解决您的问题,因为我看到在函数print1中,您再次使用了imput_text,但它是在不同的函数中定义的,所以它不起作用

def print1():
    # input_text is local variable in read function.
    tk.messagebox.showinfo('Kirjoitetun tekstin tulostus viestiikkunaan', (Entry.get(input_text)))
要解决您的问题,您可以将input_text作为print1的参数传递,如本工作示例所示

def read():
    reading_window = Tk()
    reading_window.title("Read function")
    frame = Frame(reading_window)
    frame.pack()

    read_the_text = Label(reading_window, text = "Enter text in the box!")
    read_the_text.place(x = 70, y = 10)

    input_text = Entry(reading_window)
    input_text.place(x=55, y=30)
    word = ""
    word = str(Entry.get(input_text))
    reading_window.geometry("300x300+100+100")
    # pass input_text to print1
    print_button = tk.Button(reading_window, text = 'Show typed text', height = 1, width = 15, command = lambda: print1(input_text))
    print_button.place(x=80, y=60)

    text_a_tip = Label(reading_window, text ="The typed text is displayed in\nthe message window!")
    text_a_tip.place(x = 50, y = 90)

def print1(input_text):
    # print1 takes now one argument and has reference to input_text
    tk.messagebox.showinfo('Kirjoitetun tekstin tulostus viestiikkunaan', (Entry.get(input_text)))

    def close():
        reading_window.destroy() 

    read_close_button = tk.Button(reading_window, text = 'Close the reading function', height = 1, width = 20, command = close)
    read_close_button.place(x = 60, y = 270)

    read.mainloop()
还可以考虑使用不同于place的几何体管理器,它甚至写在effbot文档中:

对于普通的窗口和对话框布局,使用place通常不是一个好主意;要使事情按其应有的方式运转,需要做很多工作。为此,请使用包或网格管理器