我使用TkInter創建了一些對話框,並且需要能夠在單擊父級按鈕時打開子窗口(模態或無模式)。然後,孩子將允許創建數據記錄,並且該數據(記錄或操作被取消)需要傳回給父窗口。到目前爲止,我有:如何在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()
這不是我想要的東西。
非常感謝這一點,它確實幫助。 –
#bryan-oakley好的技術總結。您是否推薦了關於這些技術(互聯網或書籍資源)的更多關於父母與子窗口之間數據交換的詳細信息? : - 事件生成回父 - 將數據推回父 - - ... – AJN