【发布时间】:2021-10-29 19:16:01
【问题描述】:
如何自定义包panastable,以便当我在显示屏中按Return 时,会弹出警告。我尝试将Return 绑定到函数callback,它应该创建messagebox。但什么也没有发生。在单元格中输入新内容并按Return 后,它应该会发出警告。这是我正在使用的代码:
import pandas as pd
from pandastable import Table
import tkinter as tk
from tkinter import messagebox
class MyTable(Table):
def callback(self, event):
messagebox.showinfo(title="Achtung", message="Achtung")
def showWarning(self):
self.bind('<Return>', self.callback)
top = tk.Tk()
top.geometry("300x1000")
df = pd.DataFrame()
df["column1"] = [1,2,3,4,5]
frame = tk.Frame(top)
frame.pack(fill="both", expand=True)
pt = MyTable(frame, dataframe=df)
pt.show()
pt.focus_set()
pt.showWarning()
button = tk.Button(top, text="Änderungen speichern", command=top.quit)
button.pack()
top.mainloop()
【问题讨论】:
-
你从不调用
showWarning,它应该如何将回车键绑定到任何东西?我建议你使用__init__方法中的绑定或至少调用pt.showWarning()在声明pt之后的某个时间点 -
如何将其添加到
__init__方法中? -
就像您使用任何其他方法一样,只需在类中定义它(也基于您似乎需要查看一些 OOP 教程),但同样没有必要,您目前真的只需要在调用
.mainloop之前将pt.showWarning()放在某处,它应该可以工作 -
不幸的是,添加
pt.showWarning()并没有帮助。当我使用Return时仍然没有任何反应 -
键盘焦点是否设置在小部件上?