Bonjour,
Je réalise pour moi une petite application qui me permet de sélectionné dans une liste la radio que je veux écouter (rien d'orignal, je sais).
J'ai déjà réalisé cette application en Qt5. Mais depuis je suis passé a Qt6. Je l'ai refaite depuis le début. Mon soucis, je ne parviens pas a faire varier le volume.
j'ai donc un QSlider qui doit faire varier le volume. Mais ça le met soit a Zéro, soit a 100%. Je ne sais pas comment le mettre par exemple a 50% où 20%.
Comment procéder ?
Le code mon programme :
Mon fichier FenetrePrincipale.h
Et mon FenetrePrincipale.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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #ifndef FENETREPRINCIPALE_H #define FENETREPRINCIPALE_H #include <QMainWindow> #include <QFile> #include <QMessageBox> #include <QMediaPlayer> #include <QAudioOutput> QT_BEGIN_NAMESPACE namespace Ui { class FenetrePrincipale; } QT_END_NAMESPACE class FenetrePrincipale : public QMainWindow { Q_OBJECT public: FenetrePrincipale(QWidget *parent = nullptr); ~FenetrePrincipale(); private slots: void on_verticalSlider_valueChanged(int value); void startup(); void on_actionQuitter_triggered(); void on_listWidget_currentTextChanged(const QString ¤tText); private: Ui::FenetrePrincipale *ui; QMediaPlayer *player; QAudioOutput *audioOutput; }; #endif // FENETREPRINCIPALE_H
et la fenetre en FenetrePrincipale.ui
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 #include "FenetrePrincipale.h" #include "ui_FenetrePrincipale.h" #include <QDebug> FenetrePrincipale::FenetrePrincipale(QWidget *parent) : QMainWindow(parent) , ui(new Ui::FenetrePrincipale) { ui->setupUi(this); ui->actionQuitter->setShortcut(QKeySequence::Quit); startup(); player = new QMediaPlayer; audioOutput = new QAudioOutput; player->setAudioOutput(audioOutput); } FenetrePrincipale::~FenetrePrincipale() { delete ui; } void FenetrePrincipale::on_verticalSlider_valueChanged(int value) { // volumeSliderValue is in the range [0..100] qreal linearVolume = QAudio::convertVolume(value / qreal(100.0), QAudio::LogarithmicVolumeScale, QAudio::LinearVolumeScale); audioOutput->setVolume(qRound(linearVolume * 100)); } void FenetrePrincipale::startup() { QString line; QFile file("../../radios.txt"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { QMessageBox msgBox; msgBox.setText("Error: file not found."); msgBox.exec(); return; } QTextStream flux(&file); while (!flux.atEnd()) { line = flux.readLine(); ui->listWidget->addItem(line); } } void FenetrePrincipale::on_actionQuitter_triggered() { qApp->quit(); } void FenetrePrincipale::on_listWidget_currentTextChanged(const QString ¤tText) { player->setSource(currentText); audioOutput->setVolume(1); player->play(); }
Merci de m'avoir lu.
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 <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>FenetrePrincipale</class> <widget class="QMainWindow" name="FenetrePrincipale"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>600</height> </rect> </property> <property name="windowTitle"> <string>FenetrePrincipale</string> </property> <widget class="QWidget" name="centralwidget"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QListWidget" name="listWidget"> <property name="font"> <font> <pointsize>14</pointsize> </font> </property> </widget> </item> <item> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QSlider" name="verticalSlider"> <property name="pageStep"> <number>5</number> </property> <property name="orientation"> <enum>Qt::Vertical</enum> </property> </widget> </item> </layout> </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>800</width> <height>21</height> </rect> </property> <widget class="QMenu" name="menuFichier"> <property name="title"> <string>Fichier</string> </property> <addaction name="actionQuitter"/> </widget> <addaction name="menuFichier"/> </widget> <widget class="QStatusBar" name="statusbar"/> <action name="actionQuitter"> <property name="text"> <string>Quitter</string> </property> </action> </widget> <resources/> <connections/> </ui>
Partager