python3:Tkinter OptionMenu Detect Change&Pass变量

2024-09-30 10:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在开发我的第一个“大型”python项目(第二个GUI),它是一个简单的SQLite数据库管理器。到现在为止,这是看起来的。。。 Current state of database manager.

在顶部,如您所见,有一个ChangeTable按钮和一个下拉列表,用于选择要切换到的表。在

我想做的是删除按钮,用ordenary标签替换它(这很容易做到),然后让选项菜单更改表自动选择另一个表。在

这就是我的改变。在

def change(self, root, c, tableToChangeTo, table, list_columns):
    table = tableToChangeTo.get()
    cursor = c.execute('select Rowid, * from ' + table)
    list_columns = [description[0] for description in cursor.description]

    self.clear()
    self.table(root, c, table, list_columns)
    self.addGui(root, c, table, list_columns)
    self.editGui(root, c, table, list_columns)
    self.delGui(root, c, table, list_columns)
    self.changeGui(root, c, table, list_columns)


def changeGui(self, root, c, table, list_columns):
    gridRow = self.rowTotal
    self.changeButton = Button(root, text="Change Table", command= lambda: self.change(root, c, var, table, list_columns))
    self.changeButton.grid(row = 0 , column = 0)

    var = StringVar(root)
    var.set(table)

    options = {""}
    global tableList
    ta = tableList

    for t in ta:
        options.add(t)

    self.changeOption = OptionMenu(root, var, *options)
    self.changeOption.grid(row = 0, column = 1)

所以为了简洁明了,我想把它设置为当你选择另一个表时,它会自动运行change方法。最大的问题是我似乎不知道如何使一个方法成为一个事件,同时又能将变量传递给它。在

所以谢谢你的帮助,如果你还需要什么,请告诉我!在


Tags: columnsinselfforvardeftableroot
1条回答
网友
1楼 · 发布于 2024-09-30 10:32:48

对于其他任何和我有同样问题的人,我可以通过使用这行代码使我的工作正常。在

self.changeOption = OptionMenu(root, var, *options, command= lambda event: self.change(event,root, c, var, table, list_columns))

相关问题 更多 >

    热门问题