C 4 D GUIプログラミング入門

2060 ワード

CreateLayout()でPythonダイアログのレイアウトを指定します.C 4 Dダイアログを開くとこの関数が呼び出され、継承クラスでこの関数を再ロードします.次の2つの方法でレイアウトを設定します.
レイアウトファイル
おすすめの方法はレイアウトファイルで、C 4 D内部はこのようにします.CreateLayout()は簡単です
def CreateLayout(self):return self.LoadDialogResource(MY_DIALOG)

肝心なのはMY_DIALOGはres/dialogsディレクトリ下MY_に対応DIALOG.resファイルの定数(ディレクトリ構造の章を参照).ファイルは次のとおりです.
DIALOG MY_DIALOG
{
    NAME DIALOG_TITLE;
    GROUP
    {
      COLUMNS 1;
      SPACE 4,4;
      BORDERSIZE 4,4,4,4;
      STATICTEXT { NAME HELLO_WORLD; }
    }
}

このようなウィンドウを使うといくつかのメリットがあります.ダイアログボックスのレイアウトを簡単に編集でき、内部サポートも良好です.上のNAMEフィールドは文字列を直接指定していません.stringsを指していますUS/dialogsディレクトリ下のMY_DIALOG.strの文字列.
DIALOGSTRINGS MY_DIALOG
{
    DIALOG_TITLE "My Dialog";
    HELLO_WORLD "Hello World!";
}

ドイツ語をサポートしたいならstring_usフォルダコピー1部string_に名前を変更deは、中のフィールドを変更します.
DIALOGSTRINGS MY_DIALOG
{
    DIALOG_TITLE "Mein Dialog";
    HELLO_WORLD "Hallo Welt!";
}

文字ファイルはutf 8形式で、ほとんどの言語をサポートしています.unipadはunicodeファイルを編集するのに使いやすいので、試してみてください.英語だけならエディタはどうでもいい.c 4 dプラグインをロードすると、カスタムファイルが読み込まれます.
GeDialogクラス
ダイアログボックスをリソースファイルで定義したくない場合は、GeDialogクラスのメソッドを使用して直接使用することもできます.コマンド作成インタフェースのCreateLayout()は次のとおりです.
def CreateLayout(self):
    self.SetTitle("My Dialog")
    self.GroupBegin(id=100010,flags=0,cols=1,rows=1)
        self.AddGroupSpace(4,4)
        self.AddGroupBorderSpace(4,4,4,4)
        self.AddStaticText(id=100011,flags=0,name="Hello World!")
    self.GroupEnd()

手動でエンコードしてGeLoadString()を使用しない限り、マルチ言語サポートはできません.
メニュー
リソースを使用できない唯一の場所はメニューです.CreateLayout()でGeDialogのメソッドを使用して作成する
def CreateLayout(self):
    self.MenuFlushAll()
    self.MenuSubBegin("My Menu")
    self.MenuAddString(MY_ITEM,"My Item")
    self.MenuSubEnd()
    self.MenuFinished()#...

上のコードは国際化したいので、次の方法で行います.
self.MenuAddString(MY_ITEM,plugins.GeLoadString(MY_ITEM_STRING))