wx.DirDialogのスタイル
ディレクトリ(フォルダ)選択ダイアログを開きたいときには、wx.DirDialogを使う。そのとき指定できるスタイルは以下の通り。(参照:wxPython API Documentation — wxPython Phoenix 4.0.3 documentation)
スタイル | 説明 |
---|---|
wx.DD_DEFAULT_STYLE | デフォルトのスタイル。wx.DEFAULT_DIALOG_STYLE、wx.DD_NEW_DIR_BUTTON、wx.RESIZE_BORDERを同時に指定したものになる。 |
wx.DD_DIR_MUST_EXIST | 既存のディレクトリのみを選択できるようにするスタイル。このスタイルを指定しなければ、ダイアログ上でディレクトリの新規作成ができるボタンが加えられる。 |
wx.DD_CHANGE_DIR | ダイアログを開いたときのカレントディレクトリを、ユーザーが前に開いたディレクトリとするスタイル。 |
特に、wx.DD_CHANGE_DIRの指定は重要な場合が多いかと思う。頻繁に特定のディレクトリから選択する作業を行うようなユーザーは、ダイアログを開くたびに、ディレクトリを変えなくて済むのでストレスを減らすことができる。
ファイル選択ダイアログ(wx.FileDialog)でも同じことができて、その場合のスタイルは、wx.FD_CHANGE_DIRである。
また、スタイルの指定に関係なく、ディレクトリ選択ダイアログを開いたときに最初に開かれるディレクトリを固定することができる。それが、defaultPathの指定。
それがないと、アプリケーションを起動しているディレクトリがカレントディレクトリになってしまう(Windowsではデスクトップがカレントディレクトリになるみたい)。ユーザーに、特定のディレクトリを開くことを推奨するときに必須となる。でも、これはwx.DD_CHANGE_DIRスタイルと両立できない。defaultPathを指定するとwx.DD_CHANGE_DIRは無効となる。
- wx.DirDialogの使用例
dpath = os.path.join(os.environ["HOME"], "testdirs") dlg = wx.DirDialog(self, message='Choose a directory', #style=wx.DD_DIR_MUST_EXIST, defaultPath=dpath) if dlg.ShowModal() == wx.ID_OK: print 'You selected %s' % dlg.GetPath() dlg.Destroy()