在Tkinter中创建简单小部件时未知语法错误

3 投票
2 回答
1159 浏览
提问于 2025-04-17 03:11

我在跟着这个教程(http://sebsauvage.net/python/gui/#add_button)学习用Tkinter制作小部件。我一直很仔细地按照步骤来,但在第10步运行时,出现了“无效语法”的错误。这里是代码:

import tkinter

class simpleapp_tk(tkinter.Tk):
    def __init__(self,parent):
        tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.initialize()

    def initialize(self):
        self.grid()

        self.entry = tkinter.Entry(self)
        self.entry.grid(column=0,row=0,sticky='EW')

        button = tkinter.Button(self,text=u"Click me !")
        button.grid(column=1,row=0)

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.mainloop()

IDLE(Python的一个开发环境)指出错误出现在这一行,具体是第二个引号:

button = tkinter.Button(self,text=u"Click me !**"**)

这个教程是用Python 2写的,但我用的是Python 3。有没有人能看出错误是什么,以及该如何在Python 3中修复它?

非常感谢任何帮助,我是编程新手,英语也不是我的母语。

2 个回答

2

在Python 3中,字符串前面没有这个前缀来表示Unicode字符串。

4

u"Click me !**" 替换成 "Click me !**"

这里的 u 是用来表示一个Unicode字符串的标记(在Python 2中,它的类型是 unicode,而不是 str)。不过在Python 3中,strunicode 这两种类型的区别就没有了,所以 u 这个标记也就不需要了。

撰写回答