当前位置: 首页 > 知识库问答 >
问题:

消除AttributeError:“tuple”对象没有属性“focus\u set”(Python 2.7)

白晋鹏
2023-03-14

使用Python 2.7,我使用Tkinter构建了一个图形用户界面。在我的图形用户界面上,我有一个打开输入弹出框的按钮。对弹出框的调用是:

if analysistype == 'Line of sight':
    d = MyDialog(root)

弹出框构造为:

class MyDialog(tkSimpleDialog.Dialog):
    def body(self, master):
        Label(master, text="Things").grid(row=0, columnspan=2)
        Label(master, text="Thing 1").grid(row=1)
        Label(master, text="Thing 2").grid(row=2)

        self.t1 = Entry(master)
        self.t2 = Entry(master)

        thing1 = self.t1.grid(row=1, column=1)
        thing2 = self.t2.grid(row=2, column=1)

        return thing1, thing2

在弹出框中输入任何内容之前,我得到一个错误;完整堆栈跟踪如图所示(分为几行,因此它不仅仅是一堆文本):

Tkinter回调中的异常

回溯(最近一次呼叫最后一次):

文件“C:\用户\ajpung\AppData\本地\连续体\Anaconda2\lib\lib-tk\Tkinter.py”,第1536行,在调用返回self.func(*args)

文件"目录/ThingFinder.py",第547行,在fetch_datathing1=MyDialog(root)

在initself.initial_focus.focus_set()中,文件"C:\用户\ajpung\AppData\本地\连续体\Anaconda2\lib\lib-tk\tkSimpleDialog.py",第81行

元组对象没有属性属性focus_set

如果我注释掉“returnthing1,thing2”行,我不会得到这个错误。但是,我仍然需要从弹出框返回变量。为什么会这样?

共有1个答案

郭琨
2023-03-14

body方法应该返回应该给予焦点的小部件。这就是为什么你会得到你得到的错误:tkinter试图把焦点放在应该是小部件的东西上,但实际上是一个元组。在你的例子中,你可能想要返回Self. t1

为了能够获得对话框的值,您需要定义方法应用,它应该将值保存到self.result。然后,当对话框被取消时,您可以查询结果。

d = MyDialog(root)
root.wait_window(d.top)
print("the value is %s" % d.result)

下面是一个更完整的示例:http://effbot.org/tkinterbook/tkinter-dialog-windows.htm

 类似资料:
  • 问题内容: 我想转换火花数据框架以使用以下代码添加: 详细的错误消息是: 有人知道我在这里做错了吗?谢谢! 问题答案: 您无法使用数据框,但可以将数据框转换为RDD并通过映射将其映射。在Spark 2.0之前,别名为。使用Spark 2.0,您必须先明确调用。

  • 问题内容: 我如何解决此错误,我是从GitHub下载此代码的。 引发错误 请帮我解决这个问题! 我用了: 我得到这个错误。有人帮我,我只想让它工作为什么这么难? 问题答案: 我怀疑您从中复制代码的地方启用了急切执行功能,即在程序开始时调用了该位置。 您也可以这样做。希望能有所帮助。 更新:请注意,默认情况下,TensorFlow 2.0中启用了急切执行。因此,以上答案仅适用于TensorFlow

  • 问题内容: 下面的代码给出了错误: 码: 问题答案: 从代码中,我可以看到你希望允许用户下载pdf。 现在开始 去 http://localhost:5000

  • 问题内容: 当我尝试时,会发生错误: 我找到了带有pyelasticsearch.py 的链接https://github.com/toastdriven/pyelasticsearch/blob/master/pyelasticsearch.py​​#L424-469,但我不知道它是哪个版本。无论如何,该代码中没有购买我的pyelasticsearch.py​​。任何人都有相同的经历吗?感谢您的

  • 我和cloud composer一起策划了两个数据流工作,它已经工作了一个月了。突然,这两个作业停止工作,并出现以下错误消息: 在作业中,我用存储客户端从google cloud storage下载一个文件。我以为这是因为一些依赖问题。在composer环境中,我安装了google-cloud-storage,但没有指定版本。我尝试指定包的不同版本,但似乎没有任何工作。 谢了!

  • 问题内容: 我正在使用Flask开发论坛模板。当我尝试使用表单在浏览器中创建新线程时,SQLAlchemy抛出AttributeError。当我尝试与论坛到线程实现一对多关系以及与线程到用户实现一对多关系时,出现了问题。 models.py 所有新的帖子/主题,并在views.py中处理 views.py 问题答案: 问题是这样的: 你要使用ORM对象,而不是主键列: 该错误表示整数被解释为ORM