問題タブ [traitsui]

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.

0 投票する
2 に答える
79 参照

enthought - save_file() が「既に存在します」というメッセージ ボックスを表示しない

traitsui.file_dialog から save_file() を使用しようとしていますが、問題が発生しています...本当に奇妙なことは、(PTVS を使用して) Visual Studio でコードを実行すると、問題なく動作することです!

ここに問題があります... save_file() によって作成されたダイアログを使用して既存のファイルを選択すると、Canopy エディターの iPython ウィンドウに NotImplemented エラーが表示されます。私のコードには FileExistsHandler があります (私はまだ Python/Canopy/Traits の学習の初期段階にあるので、ここですべて濡れているかもしれません:))。「File Already Exists」ポップアップも表示されません。

ただし、PTVS を使用して Visual Studio 内から同じコードを実行すると、「ファイルは既に存在します」というポップアップが表示され、それを受け入れるかキャンセルするかを選択できます。

PTVS バージョンが機能するのはなぜですか? (さらに重要なことに) Canopy Editor バージョンを機能させるにはどうすればよいですか?

誰でも提供できる手を握ってくれてありがとう:)

スティーブ

0 投票する
1 に答える
233 参照

enthought - グループ内のアイテムへの「テキスト」の追加/変更

Enthought の TraitsUI を使用して UI を設計していますが、目的を達成する方法がわかりません...

ここに私が欲しいものがあります: ビューに Items() があり、英語または SI 単位として表示したいです。SI/English ボタンに基づいて「編集」ボックスの値を変更できますが、ラベルのテキストを変更する方法がわかりません。たとえば、「Length, ft [ 3.28]」という項目があり、それを SI に変換すると、「Length, m [ 1.00]」と表示されます。3.28 から 1.00 への変換はできますが、「ft」を「m」に変更する方法がわかりません。

助言がありますか?

私が試したことの 1 つは、単位名 (「m」や「ft」など) を保持する文字列を定義することです。次に、項目で、次のようにラベルを設定します。

label = 'Top, '+lengthUnits

これは、ビューが最初に構築されたときは正常に機能しますが、単位コントロールを変更してもラベルは更新されません。ビューを強制的にすべての新しい値で更新する方法はありますか?

これは、私がやろうとしていることを示す小さなpyプログラムです(私のスタイルを自由に批判してください:))。また、何が起こるかを示すいくつかの画像を追加してみます。

私の問題を示すスクリーンショット

0 投票する
0 に答える
207 参照

python - Enthought Traits: グループのタブ付きリストとレンジ アイテム セレクター バーが表示されない

Enthought Traits の専門家が私を助けてくれます。これは初めての使用であり、私のアプリケーションは複雑です。

背景: メインの SelectionWindow がいくつかの個別のデータ グラフをロードするインターフェイスを作成しようとしています。データの各グラフは個別に表示され、ユーザーはドラッグ可能な選択バー (demo.py の Range の例のように) を使用して、各グラフのデータのポイントを互いに独立して選択できます。

1) SelectionWindow は SelectionFrame オブジェクトをリストに構築し、それぞれが渡されたデータに基づいて Range トレイトを作成します。これらを別のタブの各 SelectionFrame にタブ付けしたいと思います。SelectionFrame には、ユーザーがいくつかのデータとグループ化された名前フィールドを選択するための Range 特性があります (今のところ、後でこのグループにグラフが必要です)。

2) 次に、この SelectionFrames-->Group オブジェクトのリストからグループを作成し、ユーザーがタブ付きフレーム全体で行ったすべての選択を統合できるようにします。

3) 次に、SelectionWindow 全体のビューが生成され、レンダリングされます。

問題:

1) SelectionFrames-->Group をタブ化することができません。それ自体がタブ化されている範囲セレクターの垂直リストを取得するだけですが、これらは1つしかありません。

2) Range 特性がレンダリングされません。オブジェクト名とメモリ内の場所を含むテキスト フィールドを取得するだけです。*画像を投稿しますが、これは私の最初の質問です

コードは次のとおりです。データの読み込み部分は削除しましたが、それが機能することはわかっていますが、ここでの主な関心事はグループとその構造です。

3)スライダーバーに反応するグラフを配置することについて誰かが何かヒントを持っているなら、それは素晴らしいでしょう. matplotlib または Chaco を使用する必要がありますか? セレクターがオンになっているポイントと一致する垂直線が必要です。

それが機能する場合はありがとうございます.おそらくかなりユニークなので、完成品の画像をアップします.

0 投票する
3 に答える
843 参照

python - Traits の FileDialog にデフォルトのファイル ディレクトリを追加する

私は TraitsUI 内で FileDialog クラスを使用しています。これは非常にうまく機能しますが、私の人生を除いて、ダイアログが使用するためにデフォルトのディレクトリ を渡す方法を理解できませんでした。

理想的には、ツリーの最上部以外のローカル ファイル システムのポイントでダイアログ ボックスが開きます...

初心者からの洞察や方向性は非常に感謝しています。

次のように、基本コードはかなり一般的/標準的です。

0 投票する
1 に答える
328 参照

python - ネストされた HasTraits オブジェクト、適切に初期化する方法

別の HasTraits オブジェクトの他のいくつかの異なるインスタンスを含む HasTraits オブジェクトを作成しようとしています。ただし、マスター オブジェクトで多くの HasTraits オブジェクトを初期化すると、常に問題が発生するようです。

エラーを生成する以下の簡単な例を作成しました。誰かがこれを行う最善の方法を説明できますか? -いつ traits.Instance(traits.Int) を使うべきなのか、それとも traits.Int だけを使うべきなのかわからない -コンストラクターで特性の初期値を渡すにはどうすればよいですか? これを行うたびに、「type int required but found type traits.Int」のようなエラーが発生します

ご協力いただきありがとうございます

0 投票する
2 に答える
128 参照

python - TreeView の特性のスタックを検査しますか?

このアイデアの実現可能性を評価しようとしています。

モデリング プログラムには、かなり深い HasTraits オブジェクトのスタックがあります。たとえば、2 つのマテリアルをモデリングしている場合、これらのさまざまな属性にアクセスできます。

このコードをシミュレーションに使用しました。ここでは、特性の値をインクリメントするだけです。たとえば、これらのマテリアルの 1 つの index_of_refraction が 10 回の反復で 1.3 から 1.6 に変化するシミュレーションを実行できます。それは実際には非常にうまく機能しています。

問題は、シミュレーションに必要な特性を選択することです。ユーザーはこれらすべてのトレイト変数名を知っているわけではないため、プログラムのトレイト構造全体の階層/ツリー ビューを提示したいと考えました。上記の 2 つの特性については、次のようになります。

等...

traitsui が TreeEditor をサポートしていることは知っていますが、このような HasTraits スタックの検査に基づいて TreeEditor を構築する例はありますか? オブジェクトから特性のスタックを取得する最も簡単な方法は何ですか? 本質的に、このアイデアは実現可能ですか、それとも最初からやり直す必要がありますか?

ありがとう