
Envoyé par
gizmo27
(voir topic
ici)
Plusieurs questions ici :
=> que représente le pointeur *ui : le fichier ui de Qt Creator (où l'on glisse les boutons etc...) ? J'avoue que ce point est obscure.
Sur ce point, désolé, ça fait trop longtemps que je n'ai pas fait de Qt, je préfère m'abstenir.

Envoyé par
gizmo27
=> Ensuite Ui est un namespace : j'ai eu beau lire des tutos, dans ce cas précis je ne sais pas ce que le namespace représente : je sais que c'est un conteneur de classes mais c'est tout. Crée-t-il un fichier ui ? Quelle relation avec le pointeur *ui ?
Un namespace est juste un moyen de regrouper des classes/fonctions/variables qui ont un lien entre elles, et de les différencier des autres, évitant ainsi des conflits de nom. Il permet par exemple à une fonction a::toto et à une classe B::toto de coexister pacifiquement dans un même programme. On trouvera souvent des namespaces par bibliothèque (par exemple boost), puis des sous namespaces par thème à l'intérieur de la bibliothèque (par exemple boost::serialization).
Ça n'a aucun rapport a priori avec un fichier ui.
Ça n'a aucun rapport a priori avec l'objet désigné par le pointeur ui.

Envoyé par
gizmo27
=> enfin la double flèche : ui est un pointeur donc on met une flèche d'accord
mais
maLineEdit est un objet donc on met un point non ?
donc on écrit ceci :
Non ?
ui est un pointeur, donc écrire ui->maLineEdit est équivalent à écrire (*ui).maLineEdit, et permet d'accèder à la variable membre nommée maLineEdit de l'objet pointé par ui.
Cette donnée membre est elle même un pointeur sur un objet (probablement d'un type QLineEdit), et donc pour accéder à cet objet pour appeler la fonction copy dessus, on doit écrire :
(*ui->maLineEdit).copy();
Ou le raccourci :
PS : J'ai l'impression que tu maîtrise encore assez peu la syntaxe de base du C++, surtout liée aux objets. Et là, tu te retrouve confronté avec Qt à une bibliothèque très riche, mais qui introduit son lot de complexité. Peut-être est-ce légèrement prématuré dans ton apprentissage (même si c'est motivant) ? Peut-être faire un ou deux programmes en mode texte, mais qui définissent leurs propres objets, te permettrait de poser un peu mieux les notions ?
Partager