WXPYTHONのファイルダイアログにウィジェットを追加するにはどうすればよいですか?
-
28-09-2019 - |
質問
アプリで編集した後、ユーザーがファイルを保存できるファイルダイアログを作成しています。ファイルが保存されているフォーマットについてユーザーが選択できるように、ダイアログにチェックボックスを追加したいと思います。FileDialogから継承し、FileDialogによって作成されたフレームにチェックボックスを挿入する新しいクラスを作成する必要があると思います。しかし、私はそれをする方法を本当に知りません。誰かが私を助けることができますか?
(また、ファイルを開くための類似のファイルダイアログを作成したいのですが、保存スタイルをオープンスタイルに置き換えることを意味すると思います。)
解決
あなたはこれについて間違った方法で進んでいると思います。一般に、追加のウィジェットは標準ダイアログに追加されることはありません(できれば実際には標準ではありません)。
追加したい場合 wx.CheckBox
wx.dialogをサブクラス化することにより、独自のカスタムダイアログを作成する必要があるなど。
ユーザーにファイルタイプによるフィルタリング手段を開くか、ファイルを保存するファイルタイプを選択することだけをユーザーに提供することだけで、この機能はすべてwx.fileedialogによって提供されます。
WildCard Paramaterを使用すると、FileDialogのインスタンスを作成すると、ユーザーが選択できるファイルタイプのグループを提供できます。
これがからのスニペットです wxpythonデモ 説明するスクリーンショット。 wxpythonデモ デモを提供する非常に便利なアプリケーションです 多くの Wxpythonに含まれるウィジェットのうち、まだ持っていない場合は価値のあるダウンロードです。
wildcard = "Python source (*.py)|*.py|" \
"Compiled Python (*.pyc)|*.pyc|" \
"SPAM files (*.spam)|*.spam|" \
"Egg file (*.egg)|*.egg|" \
"All files (*.*)|*.*"
wx.fileedialogドキュメント:
http://wxpython.org/docs/api/wx.fileedialog-class.html
http://xoomer.virgilio.it/infinity77/wxpython/widgets/wx.filedialog.html
他のヒント
wxwidgets 2.9では、wxfileedialog :: setextracontrolcreator()を使用してダイアログにファイルにカスタムコントロールを追加できます。 GTK、MSW、および一般的なダイアログ用に実装されています。
または、WXFILECTRLクラスを使用することもできます。 WXGTKでのみネイティブの実装があります。
ただし、これらの機能がPythonラッパーから利用できるかどうかはわかりません。
ボルトに同意します。カスタム(ネイティブではない)ダイアログが必要な場合は、サブクラスwx.dialog。それ以外の場合は、標準ダイアログを使用する方法で使用します。参照:
http://www.blog.pythonlibrary.org/2010/06/26/the-dialogs-of-wxpython-part-1-of-2/
http://www.blog.pythonlibrary.org/2010/07/10/the-dialogs-of-wxpython-part-2-of-2/
私は、標準的なダイアログが設計された方法のみを使用する必要があるという感情に反対しなければなりません。
私は別の見解を取り、サブクラス化が意図されている方法をサブクラス化することを検討したいと思います。そして、私にとって、それはクラスに追加の機能/専門化を追加することです。
したがって、標準ダイアログの動作は変更されていません。少し追加の機能を備えた標準ダイアログに基づいて新しいダイアログを作成しています。
私の場合、2つのボタンを追加したい wx.MultiChoiceDialog
aを提供する Select All
および/または Unselect All
関数。