IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Transparence avec QGraphicsEllipseItem [Graphics View]


Sujet :

Qt

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut Transparence avec QGraphicsEllipseItem
    Bonjour, je souhaite ajouter une qgraphicsellipseitem semi-transparente (usage canal Alpha) sur lequel j'ai appliqué un QRadialGradient.

    Est-ce possible ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut
    Si tu veux une transparence globale pour ton ellipse, tu dois pouvoir utiliser setOpacity(0.5)

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut
    Merci pour ta réponse Jbx.

    Je m'en suis sorti avec QPainter (j'allais poster ma soluce mais du coup elle n'est plus d'actualité).
    J'avais crée une QImage remplie via fill(Qt::transparent), fait un QPainter avec pour utiliser drawEllipse avec un QRadialGradient, je teste ta propal de suite.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut
    J'ai fait des essais. Je garde ma méthode car si je place une QGraphisEllipseItem au bord de ma scene (celle-ci étant dans ce cas en partie à l'exterieur de la scene) le cercle de dessine complètement (même la partie hors scene). Après c'est peut-être solutionnable.

    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        int valeur=this->scene()->height()/4;
        QImage img=QImage(valeur,valeur,QImage::Format_ARGB32);
        img.fill(Qt::transparent);
        QPainter painter(&img);
    //    painter.setPen(Qt::red);
        painter.setPen(Qt::NoPen);
        QRadialGradient radialgradient(valeur/2,valeur/2,valeur,valeur/2,valeur/2);
        radialgradient.setColorAt(0.0,QColor(255,255,255,255));
        radialgradient.setColorAt(0.4,QColor(0,0,0,0));
        QBrush brosse(radialgradient);
        painter.setBrush(brosse);
        painter.drawEllipse(QRect(0,0,valeur,valeur));
        QGraphicsPixmapItem *item=this->scene()->addPixmap(QPixmap::fromImage(img));
        item->setPos(QPointF(point_depart.x()-valeur/2,point_depart.y()-valeur/2));
    Pour illustrer ce que j explique sur l'item qui déborde, on a le même résultat en commentant painter.setPen(Qt::NoPen); et en décommentant la ligne au dessus
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transparence avec direct3d managed
    Par CPPTryer dans le forum DirectX
    Réponses: 2
    Dernier message: 28/04/2006, 11h40
  2. Transparence avec opéra et Nescape
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/03/2006, 09h20
  3. Réponses: 13
    Dernier message: 01/12/2005, 05h34
  4. Texte en transparence avec TextOut
    Par TigreRouge dans le forum MFC
    Réponses: 2
    Dernier message: 06/06/2005, 22h57
  5. probleme de transparence avec fog
    Par Daedar dans le forum OpenGL
    Réponses: 10
    Dernier message: 03/05/2004, 08h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo