C 4 D GUIプログラミング入門
2060 ワード
CreateLayout()でPythonダイアログのレイアウトを指定します.C 4 Dダイアログを開くとこの関数が呼び出され、継承クラスでこの関数を再ロードします.次の2つの方法でレイアウトを設定します.
レイアウトファイル
おすすめの方法はレイアウトファイルで、C 4 D内部はこのようにします.CreateLayout()は簡単です
肝心なのはMY_DIALOGはres/dialogsディレクトリ下MY_に対応DIALOG.resファイルの定数(ディレクトリ構造の章を参照).ファイルは次のとおりです.
このようなウィンドウを使うといくつかのメリットがあります.ダイアログボックスのレイアウトを簡単に編集でき、内部サポートも良好です.上のNAMEフィールドは文字列を直接指定していません.stringsを指していますUS/dialogsディレクトリ下のMY_DIALOG.strの文字列.
ドイツ語をサポートしたいならstring_usフォルダコピー1部string_に名前を変更deは、中のフィールドを変更します.
文字ファイルはutf 8形式で、ほとんどの言語をサポートしています.unipadはunicodeファイルを編集するのに使いやすいので、試してみてください.英語だけならエディタはどうでもいい.c 4 dプラグインをロードすると、カスタムファイルが読み込まれます.
GeDialogクラス
ダイアログボックスをリソースファイルで定義したくない場合は、GeDialogクラスのメソッドを使用して直接使用することもできます.コマンド作成インタフェースのCreateLayout()は次のとおりです.
手動でエンコードしてGeLoadString()を使用しない限り、マルチ言語サポートはできません.
メニュー
リソースを使用できない唯一の場所はメニューです.CreateLayout()でGeDialogのメソッドを使用して作成する
上のコードは国際化したいので、次の方法で行います.
レイアウトファイル
おすすめの方法はレイアウトファイルで、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))