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 :

Bordure indésirable autour des widgets ajoutés à une QStatusBar


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 40
    Points : 27
    Points
    27
    Par défaut Bordure indésirable autour des widgets ajoutés à une QStatusBar
    Salut à tous,

    Je cherche à ajouter des widgets à une QStatusBar (notamment une QProgressBar). Jusqu'à là pas de problème.

    Mais lors de l'affichage, j'obtiens une affreuse bordure autour de chaque widget, d'autant plus affreuse que je travaille sous mac et que la QStatusBar est dessinée avec un bel effet de dégradé.

    Nom : screenshoot.jpg
Affichages : 93
Taille : 7,9 Ko

    Après quelques recherches, je suis tombé sur la solution suivante (lien):
    No, as Bo Thorsen pointed out the border is rendered by the statusbar
    using style.drawPrimitive with primitive EP_StatusBarSection so to avoid
    drawing it I'd either have override QStatusBar::paintEvent or change the
    style.

    Instead I just set ColorGroup:: Dark and ColorGroup::Light to the
    background color in the statusbar's palette.
    Changer la palette ne me semble pas être une solution portable, et surtout n'est pas compatible avec l'effet de dégradé.

    Je n'ai aucune de comment changer le style (à part avoir aperçu rapidement une propriété StyleSheet dans QtDesigner).

    Quant à surcharger QStatusBar::paintEvent, je suis dubitatif: ça veut dire dire que je dois me charger moi-même de dessiner l'intégralité de la barre de statut ?

    Ca me semble bizarre qu'il n'y ait pas de solutions plus simples : pour un choix esthétique non modifiable, il me paraît douteux...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Points : 161
    Points
    161
    Par défaut
    essaye d'appliquer à ta statusbar différents styles pour voir le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QStyle *monstyle = QStyleFactory::create("plastique"); //ou tout autre style existant
    mastatusbar->setStyle(monstyle);
    mastatusbar->setPalette(style->stantardPalette);

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Bonjour,

    Citation Envoyé par atomicJo Voir le message
    essaye d'appliquer à ta statusbar différents styles pour voir le résultat
    pas franchement recommandé, si tu veux garder le style mac...

    Citation Envoyé par thms92
    Je n'ai aucune de comment changer le style (à part avoir aperçu rapidement une propriété StyleSheet dans QtDesigner).
    C'est probablement une solution...
    Essaie avec quelque chose du genre (je ne suis pas sûr à 100% de la syntaxe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mastatusbar->setStyleSheet("QWidget {border:0px;}");

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    J'ai essayé le changement de style sur la barre de statut et sur la barre de progression, mais rien n'y fait: le seul changement est la disparition du style dégradé de la barre de statut.

    Si ce n'est pas trop complexe, je pourrais éventuellement tenter la surcharge de paintEvent, mais je n'ai aucune idée de comment m'y prendre.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Finalement j'ai trouvé la solution dans l'aide en ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     QStatusBar::item {
         border: 0px solid;
     }
    Tout simplement !

Discussions similaires

  1. [Dojo] Encapsuler des widgets dans une classe dojo ?
    Par andlio dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 19/12/2011, 16h26
  2. Mettre des widgets sur une image
    Par takepatience dans le forum Tkinter
    Réponses: 3
    Dernier message: 25/08/2010, 23h29
  3. accrocher des widget sur une table
    Par insa59 dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 02/04/2007, 11h32
  4. Exporter des widgets depuis une DLL
    Par zebiloute dans le forum wxWidgets
    Réponses: 5
    Dernier message: 31/07/2006, 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