TKで新しいトップレベルまたはボタンを作成するときは、パス名を入力する必要があります。私は次のような基本的なコードを見てきました:
toplevel .a
...
button .a.b ...
私の質問は次のとおりです。ドットは文字とは異なる方法で処理されますか?それらは、親子関係を作成するある種の階層区切り文字ですか?私はwikiTKを調べましたが、その答えを見つけることができませんでした。どうもありがとう、-Lior
他の回答が言っているように、ファイルシステム階層を表すために / または \ が使用されるのと同じように、ドットは階層を表すために使用されます。
厳密に言えば、ウィジェットを階層に配置する必要はありません。そうすることの利点の 1 つは、グリッドやパックなどのジオメトリ マネージャがデフォルトで親の子を管理することです。たとえば、'pack .abc' はウィジェット abc をウィジェット .ab 内にパックします。これにより、単純なレイアウトを簡単に行うことができます。
多くの場合、grid と pack に子を配置するコンテナを指定することで、同じ効果を得ることができます。たとえば、'pack .c -in .ab' は、ウィジェット .c をコンテナー .ab に配置します。これにより、階層を浅く保つことができ、リファクタリングが少し簡単になります。
tk の基礎の優れた紹介については、http://www.beedub.com/book/2nd/TKINTRO.doc.htmlを参照してください。
はい、そうです!たとえば、ウィジェットであるコンテンツを含むフレームを分離します。
set f [frame .hello]
button $f.b -text "Hello button"
pack $f.b
pack $f
この例でわかるように、fはfbではなく変数として評価されます
パック${f}.bと書くこともできますが、ドットが変数の一部ではないように見えるため、これは必要ありません。
はい-それは階層のためです。このテーマに関するTkDocsをご覧ください。
ルートの子であるフレームは、「。c」と名付けられました。「c」の代わりに、たとえば「.content」という名前を付けるなど、ほとんど何でも配置できます。この名前は純粋にプログラムで使用するためのものであるため、意味のあるものを選択することをお勧めします。フレームの子であるコントロールには、「。c.feet」、「。c.meters」、「。c.flbl」などの名前が付けられました。階層のより深いレベルにウィジェットがある場合は、別の「。」を追加します。次に、一意の識別子。