青亭浅 2024-05-20 15:38 采纳率: 88.2%
浏览 1

关于#python#的问题:infor=["韩浩","软件学院","新型平台软件","2205","胡春辉","100","体育"]


from tkinter import *
from tkinter import ttk
class studentClass():
    def __init__(self, master):
        self.name = StringVar()
        self.master = master
        self.createStudent()


    def createStudent(self):
        # 设置主窗口背景颜色
        self.master.configure(bg="#96CDCD")

        # 创建一个大的容器,用于放置所有控件
        container = Frame(self.master, bg="#96CDCD")
        container.pack(pady=10, padx=10, fill=BOTH, expand=True)

        # 创建标签和输入框区域
        label_frame = Frame(container, bg="#96CDCD")
        label_frame.pack(side=TOP, pady=(10, 5))

        name_label = Label(label_frame, text="姓名:", bg="#96CDCD", fg="white")
        name_label.pack(side=LEFT, padx=5)

        self.name_entry = Entry(label_frame, textvariable=self.name, width=20)
        self.name_entry.pack(side=LEFT, padx=5)

        # 创建按钮区域
        button_frame = Frame(container, bg="#96CDCD")
        button_frame.pack(side=BOTTOM, pady=(5, 10))

        query_button = Button(button_frame, text="查询", bg="#96CDCD", fg="white", command=self.query)
        query_button.pack(side=LEFT, padx=10)

        add_button = Button(button_frame, text="新增", bg="#96CDCD", fg="white", command=self.add)
        add_button.pack(side=LEFT, padx=10)

        import_button = Button(button_frame, text="导入", bg="#96CDCD", fg="white", command=self.import_data)
        import_button.pack(side=LEFT, padx=10)

        export_button = Button(button_frame, text="导出", bg="#96CDCD", fg="white", command=self.export_data)
        export_button.pack(side=LEFT, padx=10)

        # 创建表格区域
        table_frame = Frame(container, bg="#96CDCD")
        table_frame.pack(side=TOP, fill=X, expand=True)

        columns = ("name", "sdept1", "sdept", "class","teacher","score","talent")

        self.tree_view = ttk.Treeview(table_frame, show='headings', columns=columns, style="Treeview")
        self.tree_view.tag_configure("oddrow", background="#EAEAEA")
        self.tree_view.tag_configure("evenrow", background="#FFFFFF")

        self.tree_view.column("name", width=80, anchor='center')
        self.tree_view.column("sdept1", width=80, anchor='center')
        self.tree_view.column("sdept", width=80, anchor='center')
        self.tree_view.column("class", width=80, anchor='center')
        self.tree_view.column("teacher", width=80, anchor='center')
        self.tree_view.column("score", width=80, anchor='center')
        self.tree_view.column("talent", width=80, anchor='center')

        self.tree_view.heading('name', text="姓名")
        self.tree_view.heading('sdept1', text="院系")
        self.tree_view.heading('sdept', text="专业")
        self.tree_view.heading('class', text="班级")
        self.tree_view.heading('teacher', text="负责教师")
        self.tree_view.heading('score', text="学生成绩")
        self.tree_view.heading('talent', text="擅长领域")
        infor=["韩浩","软件学院","新型平台软件","2205","胡春辉","100","体育"]
        self.tree_view.insert("","end",text="Item1",values=infor)

        self.tree_view.pack(pady=10, fill=BOTH, expand=True)

        self.tree_view.bind("<Double-1>",self.tree_vi)

        # 树形视图滚动条设置
        vsb = Scrollbar(table_frame, orient="vertical", command=self.tree_view.yview)
        vsb.pack(side=RIGHT, fill=Y)
        hsb = Scrollbar(table_frame, orient="horizontal", command=self.tree_view.xview)
        hsb.pack(side=BOTTOM, fill=X)
        self.tree_view.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)

    def tree_vi(self):
        print(111)

    def query(self):
        pass

    def add(self):
        pass

    def import_data(self):
        pass

    def export_data(self):
        pass


class adminClass():
    def __init__(self, master):
        self.master = master
        Button(master, text="这是招聘管理界面", font=("微软雅黑", 14), fg="white", bg="#96CDCD").pack()


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


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


class discussClass():
    def __init__(self, master):
        self.master = 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)

studentClass(stuFrame)
adminClass(admFrame)
scoreClass(scoFrame)
journalClass(jouFrame)
discussClass(disFrame)

def stuFuntion(event=None):

    stuFrame.pack(fill=BOTH, expand=True)
    admFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()


def admFuntion(event=None):

    admFrame.pack()
    stuFrame.pack_forget()
    scoFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()


def scoFuntion(event=None):

    scoFrame.pack()
    stuFrame.pack_forget()
    jouFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()


def jouFuntion(event=None):

    jouFrame.pack()
    stuFrame.pack_forget()
    disFrame.pack_forget()
    admFrame.pack_forget()
    scoFrame.pack_forget()


def disFuntion(event=None):

    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()


self.tree_view.bind("<Double-1>",self.tree_vi)
这一行报错
studentClass.tree_vi() takes 1 positional argument but 2 were given
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-20 15:38
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【您想要解决的问题】:您想要解决的问题是在Python的Tkinter GUI应用程序中,当您尝试绑定双击事件到tree_viewtree_vi方法时,出现了参数数量不匹配的错误。

    【问题出现原因】:错误信息studentClass.tree_vi() takes 1 positional argument but 2 were given表明tree_vi方法被调用时传入了两个位置参数,而它只定义了一个参数。在Tkinter中,当使用bind方法绑定事件时,事件本身会作为一个参数自动传递给绑定的方法。因此,如果您在tree_vi方法中定义了一个参数,它将与事件对象冲突。

    【问题解决方案】:要解决这个问题,您需要修改tree_vi方法,使其能够正确处理传递给它的事件对象。通常,双击事件会传递一个事件对象,您可以使用这个对象来获取有关事件的信息,例如点击的位置。

    【提供代码】:下面是修改后的tree_vi方法的示例代码:

    def tree_vi(self, event):
        # 获取双击的行
        item = self.tree_view.selection()
        if item:
            # 获取该行的索引
            index = self.tree_view.index(item)
            # 根据索引获取该行的数据
            data = self.tree_view.item(item, 'values')
            print("双击了行:", index, "数据:", data)
        # 这里可以添加更多的处理逻辑
    

    【代码运行方式】:要运行您的代码,您需要有Python环境以及Tkinter库。通常,Python安装会自带Tkinter,所以您只需要确保Python已经安装在您的系统上。运行代码的方式是将上述代码保存为.py文件,然后在命令行或终端中运行这个文件。

    【代码预期运行结果】:

    双击了行: 0 数据: ['韩浩', '软件学院', '新型平台软件', '2205', '胡春辉', '100', '体育']
    

    这表示当用户双击表格中的任何一行时,控制台将打印出该行的索引和数据。

    【推荐相关链接】:

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月20日

悬赏问题

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