問題タブ [itcl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
functional-programming - コンストラクター内のメソッドで Itcl オブジェクトを拡張する
コンストラクター内のメソッドを使用してクラスを動的に拡張する可能性は Itcl にありますか?
動的に生成される関数がいくつかあります...
彼らはどういうわけかこのように見えます:
これで、可能な属性のリストを含むファイルができました。
このファイルはソースになります。しかし、今まではグローバル関数を追加していました。これらの関数をメソッドとして Itcl オブジェクトに追加する方がはるかに優れています。
少し背景情報:
これは、ユーザーがこれらの属性を他のキーワードなしで記述して簡単に追加できる抽象言語を生成するために使用されます。ここで関数を使用すると、見逃したくない多くの利点が得られます。
file - itcl クラス オブジェクトを外部ファイルに書き込むことはできますか?
itcl に特定のデータ セットを持つ単純なクラス オブジェクトがあります。
C で行うように、itcl オブジェクトを外部ファイルに直接書き込む方法はありますか?
何かのようなもの、
tcl - Itcl 構成方法: 構成スクリプトでパブリック変数を使用する方法は?
Itcl でパブリック変数の構成スクリプトを使用する適切な方法は何ですか?
つまり、これが私がやりたいことです:
少なくとも、これはセッター メソッドを C++ で書く方法です。まず、引数を確認し、有効であればプライベート変数に代入します。引数が有効でない場合は、オブジェクトの状態を変更しないでください。
ここで、私が持っている内部ステータス変数ごとにゲッター メソッドとセッター メソッドを記述する代わりに、Itcl のconfigure
メカニズムを使用してコードを書き直すことにしました。(私は物事を標準的な方法で行うのが好きです。)
このアプローチの問題は、引数が有効でない場合でも変数が割り当てられることです! そして、それを以前の値に戻す (簡単な) 方法はありません。
Itcl構成スクリプトを使用する正しい方法は何ですか? 値が変更されたときに GUI を更新する手段として Tk ウィジェット用に設計されたことは理解していますが、Tk ウィジェットは引数も検証する必要がありますね。
tcl - Itcl configbody の適切な戻り値
configbodyから戻りたいのですが、変数が設定されないようにせずに明示的に戻すことはできません。
私が見ている行動を理解するのを手伝ってください。次のコードを検討してください ( Itcl 3.4を使用):
空の文字列を返すと、ファイル名が新しい値に設定されません。戻らずに proc が失敗するのを許可すると、ファイル名が変更されます。これは、上記のコードで 1 を 0 に変更することで確認できます。
次のステートメントに関連していると思われます。
スクリプトに return がない場合、その値はスクリプトで評価された最後のコマンドの値です。
誰かがこの振る舞いと、私がどのように戻るべきかを説明してくれたら、助けていただければ幸いです.
variables - itclの初期化されていないクラス変数と初期化されたクラス変数の違い
クラス変数の次の 2 つのバージョンを使用しました。
と
明らかな唯一の明らかな違いは、前者には初期値がないことです。次のように定義されているアクセサを使用する場合:
最初に設定してからその値を取得するには、変数の宣言に使用した上記のバージョンに応じて、2 つの異なる動作が得られます。初期化されていない最初のケースでは、アクセサーは常に次をスローします。
しかし、2 番目の宣言では、期待どおりに動作し、初期値を返すか、変更されている場合はその新しい値を返します。
注 1: アクセサーを介して値を設定すると、常に機能します。
いずれかを報告します
また
初期化されたバージョンがあるかどうかによって異なります。
注 2: アクセサーは、concat と uplevel を使用して一種の「デフォルト」アクセサーを生成する proc で生成されるため、ワンライナーです。
注 3: tcl の私のバージョンは 8.5 です itcl の私のバージョンは 3.4 です どちらも変更できません
質問: 現在、有効な解決策がありますが、その違いを理解したいと考えています。良い説明は私の質問に答えます。良いドキュメントへのポインタもいいでしょうが、明らかに次へのリンクです:
またはさらに一般的にはしません。
sorting - オブジェクトの lsort -unique -command
長方形のリストがあり、重なっている場合はエラーを報告する必要があります。
そこで、 を使用lsort -command
してリストをソートし、新しいリストと古いリストの長さを比較することにしました。それらが等しくない場合は、長方形が重なっています。
作業を行うコードは次のとおりです。
正しくlsort -unique -command
動作していないか、何か間違っているようです。
どうすればこれを修正できますか? それとも、より良い解決策がありますか?
前もって感謝します!
tcl - ネイティブ OO で itcl::find の代わりになるものはありますか?
ネイティブ OO で itc::find に代わるものはありますか。
特定の名前空間のすべてのクラスを削除する必要があります。コードは次のように実行されます。
ネイティブ OO でこれを行うにはどうすればよいですか?
linux - Windows で itcl tabnotebook にタブが表示されない
私は Linux で (そして大部分は Windows でも) 正常に動作する itcl/tk アプリケーションを持っています。iwidgets::scrolledframe をパックしたフレームがあり、その中に 2 つのタブが追加された iwidgets::tabnotebook があります。
Linux では問題はありませんが、Windows (Win7 を使用) では 2 番目のタブが見つからないことがよくあります。Windowsでアプリケーションを終了して再起動すると、表示されることがありますが、表示されないことがよくあります。コードの再編成を試み、「update idletasks」を挿入しましたが、役に立ちませんでした。
他のトリックがあるかどうか、itcl/tk にインストールされたコードを掘り下げる必要があるかどうか、または PC マシンのハードウェアの問題である可能性があるかどうかは不明です。
試してみるべきことのアイデアや提案をいただければ幸いです。