青亭浅 2024-05-20 12:58 采纳率: 88.2%
浏览 1
已结题

tkinter报错111111



```python
from tkinter import *
from asd import *


class studentClass():
    def __init__(self,master):
        Button(master, "这是学生管理界面").pack()


class adminClass():
    def __init__(self,master):
        Label(master, "这是招聘管理界面").pack()



class scoreClass():
    def __init__(self,master):
        Label(master, "这是打分管理界面").pack()



class journalClass():
    def __init__(self,master):
        Label(master, "这是日志管理").pack()




class discussClass():
    def __init__(self,master):
        Label(master, "这是讨论区").pack()

root=Tk()



root.geometry("700x500")



frame=Frame(root,width=100,height=500,highlightbackground="#668B8B", highlightthickness=3)
frame.config(background="#96CDCD")
frame.pack(fill=Y, side=LEFT)

bai=Label(frame)

student=Label(frame,text="学生系统", font=("微软雅黑", 14),fg="white",bg="#96CDCD")
student.place(x=5,y=30)


admin=Label(frame,text="招聘系统" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
admin.place(x=5,y=120)

score=Label(frame,text="打分管理" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
score.place(x=5,y=210)

journal=Label(frame,text="日志管理" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
journal.place(x=5,y=300)

discuss=Label(frame,text="讨论区" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
discuss.place(x=5,y=390)

stuFrame=Frame(root)
admFrame=Frame(root)
scoFrame=Frame(root)
jouFrame=Frame(root)
disFrame=Frame(root)
def stuFuntion(event=None):
    studentClass(stuFrame)
    stuFrame.pack()
    admFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()

def admFuntion(event=None):
    adminClass(admFrame)
    admFrame.pack()
    stuFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()

def scoFuntion(event=None):
    scoreClass(scoFrame)
    scoFrame.pack()
    stuFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
def jouFuntion(event=None):
    journalClass(jouFrame)
    jouFrame.pack()
    stuFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
    scoFrame.pack_forget()
def disFuntion(event=None):
    discussClass(disFrame)
    disFrame.pack()
    stuFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
    scoFrame.pack_forget()

student.bind("<Button-1>",stuFuntion)
admin.bind("<Button-1>",admFuntion)
score.bind("<Button-1>",scoFuntion)
journal.bind("<Button-1>",jouFuntion)
discuss.bind("<Button-1>",disFuntion)

root.title("学生管理系统")

root.mainloop()




出现报错,页面不能正常跳转
报错信息:
Exception in Tkinter callback
Traceback (most recent call last):
  File "D:\python39\Lib\tkinter\__init__.py", line 1967, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\32756\PycharmProjects\TTK\db.py", line 77, in admFuntion
    adminClass(admFrame)
  File "C:\Users\32756\PycharmProjects\TTK\db.py", line 12, in __init__
    Label(master, "这是招聘管理界面").pack()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\python39\Lib\tkinter\__init__.py", line 3231, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "D:\python39\Lib\tkinter\__init__.py", line 2644, in __init__
    classes = [(k, v) for k, v in cnf.items() if isinstance(k, type)]
                                  ^^^^^^^^^
AttributeError: 'str' object has no attribute 'items'

```

  • 写回答

3条回答 默认 最新

  • 关注

    中午好🌞🌞🌞
    本答案参考ChatGPT-3.5

    问题分析:

    报错信息中提示出现问题的代码为 Label(master, "这是招聘管理界面").pack() ,相信是想要添加一个带文本的 Label 组件,但是根据报错信息可以看到,AttributeError: 'str' object has no attribute 'items',错误信息告诉我们属性值为字符串,如:文本、颜色等不能够传入字典中,所以需要修改添加 Label 的代码。

    解决方案:

    1.将 Label 组件的属性值都放到相应的参数中传入,如 text、font、fg、bg 。

    2.让属性封装成字典形式提高传参的便捷性。

    修改后的代码如下:

    from tkinter import *
    
    
    class studentClass():
        def __init__(self,master):
            Button(master, text="这是学生管理界面").pack()
    
    
    class adminClass():
        def __init__(self,master):
            Label(master, text="这是招聘管理界面", font=("微软雅黑", 14), fg="white", bg="#96CDCD").pack()
    
    
    
    class scoreClass():
        def __init__(self,master):
            Label(master, text="这是打分管理界面").pack()
    
    
    
    class journalClass():
        def __init__(self,master):
            Label(master, text="这是日志管理界面").pack()
    
    
    
    
    class discussClass():
        def __init__(self,master):
            Label(master, text="这是讨论区管理界面").pack()
    
    root=Tk()
    
    
    
    root.geometry("700x500")
    
    
    
    frame=Frame(root,width=100,height=500,highlightbackground="#668B8B", highlightthickness=3)
    frame.config(background="#96CDCD")
    frame.pack(fill=Y, side=LEFT)
    
    bai=Label(frame)
    
    student=Label(frame,text="学生系统", font=("微软雅黑", 14),fg="white",bg="#96CDCD")
    student.place(x=5,y=30)
    
    
    admin=Label(frame,text="招聘系统" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
    admin.place(x=5,y=120)
    
    score=Label(frame,text="打分管理" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
    score.place(x=5,y=210)
    
    journal=Label(frame,text="日志管理" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
    journal.place(x=5,y=300)
    
    discuss=Label(frame,text="讨论区" ,font=("微软雅黑", 14),fg="white",bg="#96CDCD")
    discuss.place(x=5,y=390)
    
    stuFrame=Frame(root)
    admFrame=Frame(root)
    scoFrame=Frame(root)
    jouFrame=Frame(root)
    disFrame=Frame(root)
    def stuFuntion(event=None):
        studentClass(stuFrame)
        stuFrame.pack()
        admFrame.pack_forget()
        scoFrame.pack_forget()
        jouFrame.pack_forget()
        disFrame.pack_forget()
    
    def admFuntion(event=None):
        adminClass(admFrame)
        admFrame.pack()
        stuFrame.pack_forget()
        scoFrame.pack_forget()
        jouFrame.pack_forget()
        disFrame.pack_forget()
    
    def scoFuntion(event=None):
        scoreClass(scoFrame)
        scoFrame.pack()
        stuFrame.pack_forget()
        jouFrame.pack_forget()
        disFrame.pack_forget()
        admFrame.pack_forget()
    def jouFuntion(event=None):
        journalClass(jouFrame)
        jouFrame.pack()
        stuFrame.pack_forget()
        disFrame.pack_forget()
        admFrame.pack_forget()
        scoFrame.pack_forget()
    def disFuntion(event=None):
        discussClass(disFrame)
        disFrame.pack()
        stuFrame.pack_forget()
        disFrame.pack_forget()
        admFrame.pack_forget()
        scoFrame.pack_forget()
    
    student.bind("<Button-1>",stuFuntion)
    admin.bind("<Button-1>",admFuntion)
    score.bind("<Button-1>",scoFuntion)
    journal.bind("<Button-1>",jouFuntion)
    discuss.bind("<Button-1>",disFuntion)
    
    root.title("学生管理系统")
    
    root.mainloop()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上