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

Discussion :

Utiliser une image de fond dans une application

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Utiliser une image de fond dans une application
    Bonjour dans le cadre de mon projet informatique, je dois réparer un programme qui n'affiche plus les images, cela fait maintenant un bon nombre d'heure que je bosse dessus et je n'arrive pas à afficher d'image.
    Je précise que je travail sur la version de Qt 4.7.2 et j'utilise Visual Studio 2008
    Voici le code que j'ai pour l'affichage de l'image.

    mon .h
    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
    16
     
    #include <QtGui/QMainWindow>
    #include <QPixmap>
    #include <QLabel>
    #include "ui_image.h"
    class image : public QMainWindow
    {
    	Q_OBJECT
     
    public:
    	image(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~image();
     
    private:
    	Ui::imageClass ui;
    };
    mon .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include "image.h"
     
    image::image(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    QPalette palette;
    palette.setBrush(this->backgroundRole(), QBrush(QImage(":/Fond.jpg")));
    this->setPalette(palette);
    }
     
    image::~image()
    {
    }
    Pour finir mon main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include "image.h"
    #include <QtGui/QApplication>
     
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	image w;
    	w.show();
    	return a.exec();
    }
    Actuellement j'obtiens une fenêtre noir.

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 72
    Points : 78
    Points
    78
    Par défaut
    Vous devez vérifier le chemain de votre image peut être

  3. #3
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Un test évident aurait été d'essayer d'afficher la même image dans un QLabel, pour voir si le problème vient de l'image ou du code pour la mettre en fond de l'appli.

    Dans ton cas c'est le code pour la mettre en fond, si tu regardes la doc :
    http://qt.developpez.com/doc/latest/....html#setbrush
    http://qt.developpez.com/doc/latest/....html#qbrush-8

    Un QBrush est une "texture" avec une certaine couleur, en lui passant un QImage en paramètre il construit une texture basée sur l'image de couleur noire. Rien à voir avec ce que tu veux faire donc. Le plus simple pour ce que tu veux est d'utiliser les feuilles de style (stylesheets) http://qt.developpez.com/doc/4.7/exe...euilles-style/

    En l'occurrence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QMainWindow {
    background-image: url(:/Fond.jpg);
    }

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Je te remercie je vais tester ça

  5. #5
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Citation Envoyé par Haiden Voir le message
    Excuse de te déranger mais je ne comprend pas trop se que tu as voulu me montrer je n'arrive toujours pas a afficher mon image. Peux tu m'expliquer un peu plus en détails s'il te plait ?
    Le code que tu donnes ne fait pas ce que tu veux faire. En regardant la doc de plus près, tu pourras t'apercevoir que la fonction setBrush permet seulement de faire un fond de couleur, avec éventuellement une texture, mais PAS d'utiliser une image de fond. Donc il faut procéder autrement, utiliser la QPalette n'est pas la solution.

    Le plus simple est de modifier la feuille de style de ta fenêtre, c'est l'équivalent du CSS web mais appliqué à des composants graphiques Qt. Sur cette page tu as des exemple de code de style, et comment appliquer ce code de style à un objet Qt.

    En cherchant sur le net tu trouveras d'autres explications sur les feuilles de style (mais souvent en anglais), c'est un principe pas forcément très clair à première vue, mais très simple à utiliser en fait.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi à afficher mon image dans mon fond de fenètre j'ai un nouveau soucis l'image passe au dessus de mes boutons et du texte, je n'ai rien trouver de bien intéressant sur le net, je voulais savoir si l'un de vous aurai une solution à me proposer

  7. #7
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Comment as tu mis ton image en fond ? Il faut montrer du code pour qu'on puisse t'aider.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Voici le code que j'utilise pour afficher mon image

    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
    16
    17
    18
    19
    20
    #include "image.h"
     
    image::image(QWidget *parent, Qt::WFlags flags)
        : QMainWindow(parent, flags)
    {
     
     
        QLabel *label_img=new QLabel(this);
     
        QPixmap *pixmap_img = new QPixmap("fond.png");
    	label_img->setScaledContents(true);
        label_img->setPixmap(*pixmap_img);
     
     
    }
     
    image::~image()
    {
     
    }

Discussions similaires

  1. [FAQ][VC++]Comment placer une image de fond dans une dialogue
    Par Gabrielly dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/04/2009, 17h21
  2. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  3. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  4. Réponses: 4
    Dernier message: 03/05/2005, 09h03

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