我正在使用TkInter创建一些对话框,并需要能够在单击父窗口中的按钮时打开子窗口(模态或非模态)。然后,子窗口将允许创建数据记录,并且这些数据(无论是记录还是取消操作)都需要传递回父窗口。到目前为止,我已经做了以下几步:
import sel_company_dlg
from Tkinter import Tk
def main():
root = Tk()
myCmp = sel_company_dlg.SelCompanyDlg(root)
root.mainloop()
if __name__ == '__main__':
main()
这将调用顶级对话框,让用户选择公司。公司选择对话框如下所示:
class SelCompanyDlg(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent_ = parent
self.frame_ = Frame( self.parent_ )
// .. more init stuff ..
self.btNew_ = Button( self.frame_, text="New ...", command=self.onNew )
def onNew(self):
root = Toplevel()
myCmp = company_dlg.CompanyDlg(root)
点击“新建…”按钮后,会弹出一个“创建公司”对话框,用户可以填写公司详细信息,并点击“创建”或“取消”。以下是该对话框的开头部分:
class CompanyDlg(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
// etc.
我正在努力寻找在onNew()
中调用子对话框的最佳方法 - 我现在有的方法有效,但我不确定这是否是最佳途径,而且我看不到如何将细节传达给子对话框。
我尝试查看在线教程/参考资料,但我发现要么太简单,要么集中于诸如tkMessageBox.showinfo()
之类的内容,这不是我想要的。