How can I add 'delete' button to listdlg?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello all! Well I have such code
% code
s.a=2;
s.b=3;
s.c=4;
s.d=5;
str=fieldnames(s);
[s,v] = listdlg('PromptString','Select a file:',...
'SelectionMode','single',...
'ListString',str)
That gives me a figure where are only 'ok' and 'cancel' buttons as default, but now I want to have delete button with which I will be able delete selected variable from s structure. Any ideas would be a great job for me, Thanks in advance.
0 commentaires
Réponses (1)
Stephen23
le 16 Fév 2015
Modifié(e) : Stephen23
le 16 Fév 2015
The standard listdlg does not support adding other buttons (or features), but one of the neat things about MATLAB is you can often adapt MATLAB's own code for your own purposes: you could rewrite the listdlg function to include another button, and make it do whatever you want it to do. Start by opening listdlg:
open listdlg
and then save a copy in your working directory, changing both the function and file names.
Then search for bushbutton: you will find three instances of uicontrol that are used to define the two standard and open optional button: you can easily change the code to add new buttons and features. You will need to read about uicontrol and understand how callback functions work. You will need to consider how to keep track of the cell of strings listString and change this using the delete button, and also how to refresh the listbox uicontrol when this happens.
2 commentaires
Stephen23
le 16 Fév 2015
Modifié(e) : Stephen23
le 16 Fév 2015
Consider doing this instead using two list boxes: one for selecting, one for deleting. This would mean you could use the standard listdlg and keep these two functionalities separate. This would be simpler code than rewriting the listdlg function.
Voir également
Catégories
En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!