Bonsoir

J'utilise qsound pour lire un son, le seul problème c'est que ça ne marche pas ! Mon code:

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "FenPrincipale.h"
#include <QToolBar>
#include <QAction>
#include <QVBoxLayout>
#include <QWebView>
#include <QList>
#include <QSound>
#include <QSystemTrayIcon>
#include <QDebug>
 
 
 
 
FenPrincipale::FenPrincipale()
{
 
 
 
    // Création de la barre d'outils
    QToolBar *toolBarFichier = addToolBar("Quitter");
    QAction *actionQuitter = toolBarFichier->addAction("&Quitter");
    actionQuitter->setIcon(QIcon("quitter.png"));
    toolBarFichier->addAction(actionQuitter);
    connect(actionQuitter, SIGNAL(triggered()), qApp, SLOT(quit()));
    // Définition de quelques propriétés de la fenêtre
    setMinimumSize(700, 692);
    setWindowTitle(tr("Bippeur EFVC"));
    setStyleSheet("background-image: url(image.png)");
    QWidget *page = new QWidget;
    pageWeb = new QWebView;
    QVBoxLayout *layout = new QVBoxLayout;
    layout->setContentsMargins(0,0,0,0);
    pageWeb->setMaximumSize(544, 545);
    pageWeb->load(QUrl("http://emergency-3.forumactif.com/hotel-de-police-f28/"));
    layout->addWidget(pageWeb, 0, Qt::AlignTop);
    page->setLayout(layout);
    this->setCentralWidget(page);
    SysTray();
    timer = new QTimer(this);
    timer->setInterval(60000); // 60000 = 60 secondes = 1 minute
    timer->start();
    connect(timer, SIGNAL(timeout()), this, SLOT(actualiser()));
    connect(pageWeb, SIGNAL(loadFinished(bool)), this, SLOT(analyserPage(bool)));
 
}
 
void FenPrincipale::actualiser()
{
 
   pageWeb->page()->triggerAction(QWebPage::ReloadAndBypassCache);
 
}
 
void FenPrincipale::analyserPage(bool ok)
{
       if (!ok)
       return;
       QString titre;
       QWebElement document = pageWeb->page()->mainFrame()->documentElement();
    // On recherche tous les éléments <tr> de la table du forum
    QWebElementCollection lignesTableau = document.findAll("table.forumline tr");
    foreach(QWebElement ligne, lignesTableau)
    {
        // On vérifie s'il y a une ligne de sujet (<h2 class="topic-title">)
        QWebElement titre = ligne.findFirst("h2.topic-title");
        if (titre.isNull()) // Si ce n'est pas le cas on passe à la suivante
            continue;
        // Le nombre de réponses est dans le premier <span class="postdetails">
        QWebElement nombreReponses = ligne.findFirst("span.postdetails");
        // On crée un objet Sujet et on l'ajoute à la liste
        sujet << Sujet(titre.toPlainText(),nombreReponses.toPlainText().toInt() );
    }
 
    if (listeActuelle != sujet)
    {
       // on sauvegarde la nouvelle liste
       listeActuelle = sujet;
       QMessageBox::information(this, "Intervention", "A toutes les unités: intervenez !");
  QSound::play("son.wav");
 
 
    }
 
}
 
 
void FenPrincipale::SysTray()
    {
 
 
        // Création de l'objet gérant l'entrée dans la zone de notification
        m_SystIcon = new QSystemTrayIcon(this);
 
        // Création du menu qui apparaitra après un clic droit sur l'icône
        QMenu* sysTrayMenu = new QMenu(this);
 
        // Création des différentes actions pour le menu de la zone de notification
        QAction* hide = new QAction("Hide",this);
        QAction* show = new QAction("Show",this);
        QAction* quit = new QAction("Quit",this);
 
 
        // On ajoute nos actions au menu système
        sysTrayMenu->addAction(hide);
        sysTrayMenu->addAction(show);
        sysTrayMenu->addAction(quit);
 
        // On lie le menu avec l'icône
        m_SystIcon->setContextMenu(sysTrayMenu);
 
        // On charge l'image dans l'object icône
        QIcon unIcon(QApplication::applicationDirPath() + "/icon.png");
 
        // On place notre image dans la zone de notification
        m_SystIcon->setIcon(unIcon);
 
        // Affichage de l'icône dans la zone de notification
        m_SystIcon->show();
 
        // On ferme si la personne clique sur "Quit"
        connect(quit, SIGNAL(triggered()), this, SLOT(close()));
        // On affiche la fenêtre si la personne cliuqe sur "Show"
        connect(show, SIGNAL(triggered()), this, SLOT(show()));
        // On cache la fenêtre si la personne clique sur "Hide"
        connect(hide, SIGNAL(triggered()), this, SLOT(hide()));
 
    }
 
void FenPrincipale::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
       if(reason == QSystemTrayIcon::DoubleClick)
    {
            // On affiche la fenêtre si la personne a double cliquer
      connect(m_SystIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(show()));
 
 
    }
 
 
 
}