0

単純なファイル I/O を実行しています。私は Directory traitSaveDirと File traitを持っていますSaveFile。GUI で入力したディレクトリ パスまたはデフォルトのディレクトリ パスにアクセスするにはどうすればよいですか? たとえば、次の例のように印刷したいと思います。

たとえば、get_value を使用しSaveDir.get_valueますか? 私はそれを理解することはできません...

値にアクセスできるようになったら、書き込み用にファイルを開くことができるパス文字列を作成しますself.writefile = open(path,'w')

ありがとう、コスモ

class ControlPanel(HasTraits): 
    SaveFile = Str("MyDAta")
    SaveDir = Directory("C:/My Documents/Data")

    view = View(Item('SaveFile',label='Save Filename',style='simple'),Item('SaveDir',label='Data Directory', style='simple'))

    print SaveDir  
4

2 に答える 2

0

クラスのインスタンスを作成し、それに対して configure_traits を呼び出す必要があります。次に、その SaveDir トレイトを調べることができます。通常、変更通知メソッドやボタンを作成します。

ここで参照されている資料を参照してください: https://support.enthought.com/entries/22878645-Introductory-materials-for-Traits-and-Traits-UI

次に、文字列と整数だけを持つクラスから始めて、これらの使用方法を学習することをお勧めします。その後、必要に応じてこれを Directory に拡張できます (ただし、実際のプログラムの場合、Directory トレイトはかなり柔軟性がなく、他の方法が望ましいことがよくあります)。

更新: Canopy User Python directoryExamples/traitsui-4.2.0のサブディレクトリに、多くの有用な例があります。

更新 2: より便利なファイル選択ダイアログについては、特に pyface パッケージを参照してください: https://github.com/enthought/pyface/blob/master/pyface/i_file_dialog.py

于 2013-11-09T04:56:20.860 に答える
0

@Jon に従って (これが彼の意図だと思います)、クラスのメソッド内の文字列としてディレクトリにアクセスできます。特に、ボタンのメソッド内で機能します。

これについてははっきりしていませんが、メソッドを呼び出すとselfクラスのインスタンスも作成されるようですControlPanel。これは正しいです?

class ControlPanel(HasTraits): 
    SaveFile = Str("MyDAta")
    SaveDir = Directory("C:/My Documents/Data")
    start = Button("Start Measurements")


    view = View(Item('SaveFile',label='Save Filename',style='simple'),
                Item('SaveDir',label='Data Directory', style='simple'), 
                UItem('start',style='custom'))

    def _start_fired(self):
        print self.SaveDir

版画:

C:/マイ ドキュメント/データ

于 2013-11-11T22:34:58.250 に答える