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 :

Couper tous les sons QSound depuis une classe d'options

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Couper tous les sons QSound depuis une classe d'options
    Bonjour à tous,

    Alors, j'ai une fenetre Options dans laquelle j'aimerais mettre un bouton qui change de couleur avec vert pour On et rouge pour Off pour le son.

    Mais mon son est créé dans une fenetre Menu et une fenetre Level. Comment puis-je les récupérer pour pouvoir les couper (donc stop() ) ?

    Voici le code

    Options.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
    15
    16
    17
    18
    19
    20
    21
    22
    Options::Options(QWidget *parent): QWidget(parent)
    {
     
    m_boutonSonOn=new QPushButton("On",this);
        m_boutonSonOn->setFont( QFont("Comic Sans MS", 20, QFont::Bold, true));
        m_boutonSonOn->setStyleSheet("background-color:red");
     
       QObject::connect(m_boutonSonOn,SIGNAL(clicked()),parent,SLOT(son()));
    }
    void Options::son(){
     
    if(m_boutonSonOn->text()=="On"){
            m_boutonSonOn->setText("Off");
            m_boutonSonOn->setStyleSheet("background-color:red");
     
        }
        else if (m_boutonSonOn->text()=="Off"){
            m_boutonSonOn->setText("On");
           m_boutonSonOn->setStyleSheet("background-color:green");
        }
     
    }
    Options.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
    17
    18
    #include <QApplication>
    #include <QWidget>
    #include <QPushButton>
    #include <QSound>
    class Options : public QWidget
    {
     
        Q_OBJECT
     
     
    public:
        Options(QWidget *parent=0);
    public slots:
        void son();
    private:
     
        QPushButton *m_boutonSonOn;
      };
    Menu.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     //Son
        m_musicMenu=new QSound("../options.wav");
        m_musicMenu->play();
    Menu.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
    #include <QApplication>
    #include <QWidget>
    #include <QSound>
     
    class Menu: public QWidget
    {
            Q_OBJECT
    public:
        Menu(QWidget *parent=0);
     
     
     
    private:
        QSound *m_musicMenu;
    };
    J'ai pareil dans le level
    Ah, et j'ai aussi une MainWindow dans laquelle j'inclus les classes Options, Menu et Level


    Merci!

  2. #2
    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 : 38
    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
    Bonjour, tu as probablement résolu ton problème depuis le temps, mais au cas où quelqu'un d'autre passe :
    En fait c'est surtout un problème Objet plutôt que Qt, tu dois accéder depuis ta classe Options à des objets contenus dans d'autres classes (Menu et Level ?). Tu peux soit passer le pointeur de ton objet QSound au constructeur de Options et du coup appeler stop directement ; soit passer le pointeur de Menu ou Level au constructeur de Options et créer dans Menu ou Level une fonction qui s'occupe d'appeler stop sur ton ou tes objets QSound.

    Mais tu devrais peut être te poser la question : quelle classe est la plus adaptée pour gérer les objets QSound et fournir des fonctions pour gérer ces objets (lecture, stop etc).

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

Discussions similaires

  1. [AC-2003] Requête pour sortir tous les enregistrements modifés depuis une date
    Par piercleo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/01/2010, 15h08
  2. SDL depuis une classe : Réguler les FPS
    Par Froyok dans le forum SDL
    Réponses: 5
    Dernier message: 07/06/2009, 16h18
  3. Attaquer les méthodes d'un controle depuis une classe
    Par chti_vince dans le forum ASP.NET
    Réponses: 10
    Dernier message: 18/07/2007, 15h04
  4. Consommer les méthodes d'un controle depuis une classe
    Par chti_vince dans le forum ASP.NET
    Réponses: 8
    Dernier message: 12/07/2007, 09h22
  5. Réponses: 2
    Dernier message: 08/02/2007, 11h39

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