E71:appuifw.Formとe32dbmを使ってみた
E71:appuifw.Formとe32dbmを使ってみた †
appuifw.Formをつかってデータを入力し、入力されたデータをe32dbmで保存するような機能を作ってみました。
添付ファイルのソースをDLすれば、実行することができます。
なお、e32dbmのファイルを「e:\Documents\python」に保存するつくりとなってますんで、このディレクトリがない場合は、作成するかソースを修正してください。
ポイント †
簡単ですが解説します。
- 8行目
- e32dbmで保存するファイル名を指定しています。
- 15行目~
- e32dbmにデータが入っていない場合、デフォルト値として空白を設定
- 22行目~
- e32dbmからデータを取得し、ユニコードに変換して値を設定
- 28行目~
- Formにセットする項目、型、データをリストとして設定
- 36行目
- Formクラスを生成
- 37行目
- Formクラスのsave_hookを設定
フォーム画面表示中の左シフトキーの「Save」メニュー選択時に実行されるcallableオブジェクトを指定します。この場合、「ConnInfoMngr?」クラスの「menu_save」メソッドを指定してます。
このメソッドは呼び出し時に、formの現在値が格納されたリストが引き渡されます。 - 39行目~
- データの入力チェック。要素の長さが0である場合はチェック結果失敗としている。
- 65行目~
- e32dbmでデータを保存します。
- 73行目~
- executeメソッドでフォーム画面を表示します。
■ソースコード
#refpre(formtest3.py,,1)
イメージ †
動かすとこんな感じになります。
■起動時 左シフトキーを押すとメニューが出てきます。
最初は、何も値が入力されていない状態のフォームが表示されます。
左シフトキーを押すと、「edit」メニューが表示され、選択すると入力が脳になります。
入力可能画面
入力が完了したら、左シフトキーを押して「Save」を選択します。
データを保存し、値が編集できないモードになります。編集が完了したら右シフトキーの「Back」で戻ります。
最初の画面で、メニューから「print-info」を選択すると、e32dbmに保存されている値を表示できます。
添付ファイル: Screenshot0109.jpg 1345件 [詳細] Screenshot0103.jpg 1350件 [詳細] Screenshot0107.jpg 1357件 [詳細] Screenshot0105.jpg 1429件 [詳細] formtest3.py 981件 [詳細] Screenshot0104.jpg 1371件 [詳細] Screenshot0102.jpg 1413件 [詳細] Screenshot0101.jpg 1376件 [詳細] Screenshot0106.jpg 1428件 [詳細]