poignées de structure dans matlab GUI
Je suis en train d'apprendre GUI programmin dans Matlab.
J'ai trouvé que c'est assez délicat que les poignées de la structure utilisée pour le stockage de tous les gui de Données. Je voudrais savoir exactement comment la structure est. Je vais utiliser un exemple pour expliquer ma question.
disons-le, nous avons créé edittext1.
nous aurions poignées.edittext1 stockées.
puis
str = get(hObject,'String');
set(handles.edittext1,'String',str);
ce sera mis en Chaîne dans les poignées.edittext1 à la str.
Ma question est
étonnamment pour moi, "String" dans le get et set opération n'est pas sensible à la casse.
Et les poignées.edittext1.Chaîne de ne pas retourner la chaîne stockée.
Donc, poignées n'est pas une structure de tableau, et comme une question suivante, quelle structure de poignées devrait-il être?
Et la même question peut être posée à hObject ainsi.
Et non, il n'est pas un devoir ou d'une affectation. C'est un projet en cours pour mon travail. J'ai travaillé avec matlab depuis des années, mais c'est la première fois pour moi de faire une interface graphique avec matlab. Donc, merci de me traiter comme un débutant.
ce qui concerne
Vous devez vous connecter pour publier un commentaire.
hObject est le handle de l'objet qui a émis le rappel (par exemple, le bouton qui a lancé le rappel lorsque vous cliquez dessus). poignées est une structure contenant des poignées pour tous les objets dans votre figure. hObject sera différent pour chaque objet, les mêmes poignées de liste sera transmise à chaque rappel. Dans votre exemple, si c'est dans le edittext1 rappel, hObject et les poignées.edittext1 sont les mêmes.
Les deux sont des poignées pour les objets, et non des structures. Si vous ne pouvez pas dire poignées.edittext1.Chaîne de caractères. Toutes les propriétés des objets (comme le contenu de la chaîne) sont accessibles via le jeu et obtenir des fonctions. Comme vous l'avez remarqué, les noms de propriété ne sont pas sensibles à la casse. Espérons que les réponses à toutes vos questions.
Mise à jour:
Ma réponse à votre question de suivi était trop long pour le commentaire, j'ai donc mis à jour la réponse.
Je ne suis pas sûr de comprendre ta question. Si vous voulez vérifier la valeur d'une propriété, vous utilisez obtenez comme vous l'a montré dans votre question:
Si vous voulez vérifier si une propriété existe ou de ce que les propriétés sont, appelez sans spécifier de paramètre:
Cela permettra d'imprimer toutes les propriétés et leurs valeurs à la console. Si vous voulez le faire par programmation,
sera de retour d'une structure dont les champs sont les paramètres. Vous pouvez ensuite accéder aux paramètres de
et peut vérifier si un champ existe avec
Autant que je sache, toutes les poignées de composants GUI sont des objets de classes (POO) qui héritent de la
handle
super-classe (hgsetget
pour être plus exact, qui est lui-même une sous-classe dehandle
). AinsihObject
stocke un pointeur vers un objet, et non l'objet lui-même.La
handle
classe et sa sous-classes d'exposer les fonctions communes (une interface)set
/get
(ils effectuent un casse correspondance partielle pour le nom de la propriété). Dans ce cas, vous devez accéder à la "propriété" des "cordes" à l'aide de getter/setter.La
handles
est une variable utilisée dans le GUIDE générés par les Interfaces graphiques, passé autour de fonctions de rappel pour la commodité de l'utilisateur. C'est une structure simple (pas une structure de tableau), donc chaque champ peut stocker différents types de données.Remarque: MATLAB dispose d'une excellente documentation qui explique tout cela en détail. J'ai mis à jour la réponse plus tard avec des liens vers des pages pertinentes..