Creer un rectangle que l'on puisse agriper avec le curseur

toyo2020 Messages postés 70 Date d'inscription jeudi 15 octobre 2020 Statut Membre Dernière intervention 27 novembre 2024 - Modifié le 22 nov. 2024 à 14:38
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 27 nov. 2024 à 10:41

Bonjour je souhaite créer un rectangle en C++ et voilà le code que j'ai choisi :

class rectangle
{ public:
 
rectangle(){};
init(Point,Point);
 
private:
	Point SupGauche,InfDroit; 
};
 
rectangle::init(Point SG, Point ID)
{
instruction ... 
}

Certains opteraient-ils pour un autre code ?

Je souhaite que ce rectangle soit manipulable c'est à dire que l'on puisse l'agripper avec le curseur et le déplacer dans le  bureau.

Quel code me conseillerez-vous ? Merci d'avance de vos réponses.

A voir également:

5 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
Modifié le 22 nov. 2024 à 14:36

Bonjour,

Vu le titre, tu sembles parti pour vouloir implémenter une forme d'interface graphique (GUI). As-tu déjà choisi quelle technologie tu allais utiliser (Qt, GTK, etc.). Peux-tu nous expliquer le but final poursuivi ? Je pose ces questions car je sens que tu t'apprêtes à réinventer la roue, et surtout à partir dans une mauvaise direction.

Ces considérations mises à part, le code que tu proposes me paraît incorrect, je t'invite à revoir ton cours sur les constructeurs et le polymorphisme.

Voici ce que tu pourrais écrire :

class Point {
    private:
        int x;
        int y;
    public:
        Point(int x = 0, int y = 0):
            x(x),
            y(y)
        {}
};

class Rectangle {
    private:
        Point top_left;
        Point bottom_right;

    public:
        Rectangle(){}

        Rectangle(
            const Point & top_left,
            const Point & bottom_right
        ):  
            top_left(top_left),
            bottom_right(bottom_right)
        {}
};

int main() {
    Point p1(3, 4), p2(7, 8);
    Rectangle r(p1, p2);
    return 0;
}

Bonne chance

1
toyo2020 Messages postés 70 Date d'inscription jeudi 15 octobre 2020 Statut Membre Dernière intervention 27 novembre 2024
23 nov. 2024 à 18:24

tu sembles parti pour vouloir implémenter une forme d'interface graphique (GUI).

Non je veux juste un rectangle déplaçable dans le bureau, rien de plus.

.

.

As-tu déjà choisi quelle technologie tu allais utiliser (Qt, GTK, etc.).

Peu importe je veux juste un créer un petit rectangle et y mettre une photo, je veux aussi le déplacer à ma guise.

.

.

Peux-tu nous expliquer le but final poursuivi ?

j'aime avoir les photos de mes enfants à l'écran mais je n'ai pas mis une de ces photo en fond d'écran car il est saturé d'icône

Je préfère avoir une photo plus petite et la parfois la déplacer selon la position des fenêtres et seulement quand les fenêtres ne prennent pas trop de place, cela dépend de l'activité.

.

.

le code que tu proposes me paraît incorrect

Oui je l'ai écrit à la va vite sans l'exécuter.

.

.

Bonne chance

Merci, mais je n'arrive pas à trouver le code qui me permette d’agripper un objet (ici un rectangle) afin de le déplacer. Merci d'avance pour ceux qui m'indiqueraient cela.

0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
25 nov. 2024 à 13:39

Bonjour,

Non je veux juste un rectangle déplaçable dans le bureau, rien de plus.

On est d'accord que le rectangle dont tu parles est moralement une fenêtre vu que ça doit apparaître par dessus les icônes ? Et donc en ce sens on tombe dans une GUI. Très simple, mais une GUI quand même :-)

Merci, mais je n'arrive pas à trouver le code qui me permette d’agripper un objet (ici un rectangle) afin de le déplacer. 

C'est parce que comme je te l'indiquais, il faut implémenter tout ça. Tout ceci ce fait de nos jours via une librairie graphique (Qt, GTK, ...), ce qui t'oblige à comprendre comment créer un tel projet et le compiler. Comme ce n'est pas forcément aisé, sache que tu n'es pas obligé de le faire en C++, tu peux considérer des langages de programmation plus simple (par exemple python). 

Peu importe je veux juste un créer un petit rectangle et y mettre une photo, je veux aussi le déplacer à ma guise.

J'aurais tendance à te dire ouvre une visionneuse photo, et ça fera ce que tu veux non ?

Bonne chance

0
toyo2020 Messages postés 70 Date d'inscription jeudi 15 octobre 2020 Statut Membre Dernière intervention 27 novembre 2024
Modifié le 27 nov. 2024 à 10:04

J'avais pensé a une visionneuse mais cela sera pollué par le rebord de la fenêtre (de la visionneuse).

C'est pourquoi j'envisage le rectangle movible. Je veux bien passer via QT pour cela si en C++ c'est le plus pertinent.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
27 nov. 2024 à 10:41

Bonjour,

Il est plus pertinent de repartir d'une librairie (comme Qt) que de repartir de zéro. Garde à l'esprit que compiler du C++ qui plus est un projet Qt (ou avec une librairie dédiées aux interface graphiques en générale) nécessite quelques notions, donc je t'invite à regarder un tutoriel au préalable.

Quoi qu'il en soit, tu peux repartir de cet exemple. Dans ton cas tu veux vraisemblablement utiliser une fenêtre qui utilise ce flag (voir ici) :

setWindowFlags(Qt::CustomizeWindowHint);

Bonne chance

0