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()
か、私が望んでいるものではないようなことに焦点を当てています.