【问题标题】:AttributeError: 'NoneType' object has no attribute 'pack'AttributeError:“NoneType”对象没有属性“pack”
【发布时间】:2020-07-29 10:23:31
【问题描述】:

我想在我的 Python 图形用户界面应用程序中添加一个视频,在单击按钮后读取新帧。但是我收到了这个错误:

AttributeError: 'NoneType' 对象没有属性 'pack'。

当我取消注释 pack 方法时,错误消失,但出现一个白色空白窗口。

def show_vid(): 

     print cap
     print rdfile

     _ ,image = cap.read()

    cv2.imwrite("frame.jpg" , image)
    image=Image.open('F:\\MachineLearning\\\\frame.jpg')#creating a function
    img = ImageTk.PhotoImage(image)
    imglabel = Label(window, image=img)
    imglabel.grid(row=0 , column=0)#.pack().place(bordermode=OUTSIDE, x=10, y=100)  

【问题讨论】:

    标签: python


    【解决方案1】:

    这个函数调用 -

    imglabel.grid(row = 0 , column = 0)
    

    返回无。因此,当您尝试对其调用 pack() 时,您会收到该错误。简单,不是吗?

    更准确地说:我怀疑 grid() 永远不会返回任何东西。这是另一种说法,它返回无。你错误地使用了那个函数。

    编辑:

    我对 tkinter 一无所知,但我相信您需要将函数调用拆分为 2 个单独的调用:

    imglabel.grid(row=0 , column=0)  //this returns nothing, so you can't call another function here.
    imglabel.pack().place(bordermode=OUTSIDE, x=10, y=100)
    

    【讨论】:

    • 它工作正常但会引发错误...我还提到当我取消注释 pack() 语句并只使用 grid() 方法时...即使这样框架没有上传而是空白出现白色窗口
    • 我删除了那个...错误已删除,但我现在没有在我的 gui 上显示图像
    • 不要删除代码 - 只需将调用分成两行。您能否编辑问题以反映新代码?
    • 我编辑了它...你可以在打包之前看到取消注释..我也尝试拆分呼叫但它不起作用
    • 分成两行后出现什么错误?
    【解决方案2】:

    让我想起了我刚刚做过的事情:' 谢谢大家的帮助!

    def popup():
        """The popup windows opening"""
        window = Toplevel()
        label = tk.Toplevel
        label.Toplevel()
    

    ..变成:

    def popup():
        """The popup windows opening"""
        window = Toplevel()
        label = tk.Toplevel
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-01
      • 2021-12-26
      • 2019-07-23
      • 2018-05-13
      • 2020-09-07
      • 2017-05-03
      • 2023-03-16
      • 2018-07-14
      相关资源
      最近更新 更多