Skip to main content
 首页 » 编程设计

python之属性错误 : Message instance has no attribute 'pack'

2025年05月04日9webabcd

我在 GUI 中使用 Tkinter,但遇到一个问题: 我尝试制作一个消息小部件,当我写的时候:

body = Message(top, bd = 2) 
body.pack(side=RIGHT) 

我收到这个错误:

body.pack(side=RIGHT) 
AttributeError: Message instance has no attribute 'pack' 

我不明白这一点,因为我查看了一些指南并且允许以这种方式使用“消息”,如示例所示:http://www.tutorialspoint.com/python/tk_message.htm

还有别的写法吗?

请您参考如下方法:

Tkinter 中至少有两个Message 类。其中一个来自tkMessageBox.Message,另一个来自Tkinter.Message。前者是 tkCommonDialog 中 Dialog 的子类,由于打包对话框是没有意义的,因此在这种情况下没有 pack 方法。后者是一个叫message的Tk widget,就是你要的那个;作为一个小部件,打包它是有意义的。

您的完整代码大多包含以下形式(Python 2):

from Tkinter import * 
from tkMessageBox import * 

第二个导入隐藏了第一个导入的 Message 类。要使用您想要的 Message 类,只需将上面的代码更改为:

from Tkinter import * 
import tkMessageBox 

然后相应地调整您的代码。