Question

Je crée une boîte de dialogue de fichier qui permet à l'utilisateur d'enregistrer un fichier après l'avoir modifié dans mon application. Je veux ajouter une case à cocher la boîte de dialogue afin que l'utilisateur peut faire des choix sur quel format le fichier est enregistré. Je pense que je dois faire une nouvelle classe héritant de FileDialog et insère une case à cocher dans le cadre créé par le filedialog, mais je ne sais pas vraiment comment faire. aider quelqu'un peut me sortir?

(Je veux aussi créer un dialogue de fichier analogue pour ouvrir un fichier, mais je suppose que cela signifie simplement remplacer le style SAUVER avec le style ouvert.)

Était-ce utile?

La solution

Je pense que vous allez dans la mauvaise direction à ce sujet. Dans des widgets supplémentaires généraux sont Ment de ne pas être ajoutées aux boîtes de dialogue standard (ils ne seraient pas vraiment standard si vous pouviez).

Si vous souhaitez ajouter de wx.CheckBox ou comme vous allez devoir créer votre propre dialogue personnalisée par le sous-classement wx.Dialog.

Si tout ce que vous devez faire est de fournir à l'utilisateur un moyen de filtrage par types de fichiers à ouvrir ou sélectionner les fichiers de type le fichier doit être enregistré en tant que, cette fonctionnalité est tout prêt fourni par WX. FileDialog.

En utilisant le caractère générique paramater lors de la création d'une instance de votre fileDialog vous pouvez fournir un groupe de types de fichiers pour assurer à l'utilisateur de choisir.

Voici un extrait de la Démo wxPython et une capture d'écran pour illustrer. Démo wxPython est application très utile qui fournit des démos de plus des widgets inclus avec wxPython, un téléchargement utile si vous ne l'avez pas déjà.

wildcard = "Python source (*.py)|*.py|"     \
           "Compiled Python (*.pyc)|*.pyc|" \
           "SPAM files (*.spam)|*.spam|"    \
           "Egg file (*.egg)|*.egg|"        \
           "All files (*.*)|*.*"

text alt

wx.FileDialog Documentation:

http://wxpython.org/docs/api/wx.FileDialog -class.html

http://xoomer.virgilio.it/infinity77/wxPython /Widgets/wx.FileDialog.html

Autres conseils

Dans wxWidgets 2.9 contrôles personnalisés peuvent être ajoutés aux boîtes de dialogue de fichier à l'aide wxFileDialog :: SetExtraControlCreator (). Il est mis en œuvre pour GTK, MSW et boîtes de dialogue génériques.

Vous pouvez également utiliser la classe wxFileCtrl. Il a la mise en œuvre native que dans wxGTK.

Je ne sais pas si ces fonctionnalités est disponible à partir wrappers Python, cependant.

Je suis d'accord avec volting. Si vous avez besoin d'un dialogue (pas native), la sous-classe wx.Dialog. Dans le cas contraire, utilisez les boîtes de dialogue standard la façon dont ils sont censés être utilisés. Voir aussi:

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/

Je suis en désaccord avec le sentiment que vous devez utiliser les boîtes de dialogue standard uniquement la façon dont ils ont été conçus.

Je prends une autre vue et serait plutôt envisager d'utiliser le sous-classement de la façon dont subclassing était destinée. Et pour moi, il est d'ajouter des fonctionnalités supplémentaires / spécialisation à une classe.

Il ne change pas le comportement de la boîte de dialogue standard. Il crée une nouvelle boîte de dialogue sur la base de dialogue standard avec un peu de fonctionnalités supplémentaires.

Dans mon cas, je veux ajouter deux boutons à la wx.MultiChoiceDialog pour fournir une fonction Select All et / ou Unselect All.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top