XmlSettingBase

XmlSettingBaseはアプリケーション設定をXMLファイルに関連づけるために用意されたモジュールです。


特徴

使い方

pip install ikkToolKit

サンプルコード

from ikkToolKit import XmlSettingBase

#####################################################################
# サンプル
#####################################################################
if __name__ == "__main__":
    #XmlSettingBaseを継承して任意名のクラスにする
    class AppSetting(XmlSettingBase):
        """ 公開プロパティ名とXMLタグの関連付け """
        _PROPERTIES = {
            #公開プロパティ名    : (XMLのキー     , 型    , デフォルト値)  のタプルを定義してください
            "tergetDir"         : ("path1"      , str   , ""         ),
            "tergetFile"        : ("file1"      , str   , ""         ),
            "defaultCount"      : ("valint1"    , int   , 0          ),
            "defaultPosition"   : ("valfloat1"  , float , 0.0        ),
            "LabelX"            : ("valstr1"    , str   , ""         ),
            "LabelY"            : ("valstr2"    , str   , ""         ),
        }
        def __init__(self):
            super().__init__("setting.xml") #対象とするXMLファイルのパスをSuperClassに渡す
            self.load()
    #----------------------------------------------------
    import sys
    setting = AppSetting()
    def show_settings():
        print(setting.tergetDir) #_PROPERTIESで定義したプロパティ名でアクセス可能
        print(setting.tergetFile)
        print(setting.defaultCount)
        print(setting.defaultPosition)
        print(setting.LabelX)
        print(setting.LabelY)
        print("------------------------------------------")
    show_settings()     # 読み込み直後をPrint
    setting.show_editor(None)  #編集GUI表示
    show_settings()     # 編集後の状態表示

XMLファイルの制約

Sample XMLファイル

<?xml version='1.0' encoding='utf-8'?>
<AppFileSetting tips="編集ウインドウタイトル" version="1.0">
  <path1 type="directory" tips="フォルダ">C:\work\</path1>
  <file1 type="file" tips="ファイル">C:\work\table.csv</file1>
  <valint1 type="int" tips="int設定値">134</valint1>
  <valfloat1 type="float" tips="float設定値">3.14159</valfloat1>
  <valstr1 type="string" tips="文字列1">ABCDEFG</valstr1>
  <valstr2 type="string" tips="文字列2">あいうえお</valstr2>
</AppFileSetting>

GUIによる編集画面

type,tips属性に連動した編集画面の生成 alt text