Position eines sliders wieder einstellen
-
Es geht um einen Multimedia-Player, der einen Lautstärke-Slider und ein Ton-aus-ein-Symbol, das automatisch angezeigt wird, wenn der Slider auf Null bzw. nicht auf Null eingestellt ist. Nun soll der Slider automatisch auf die vorherige Position springen, wenn der Ton über das Symbol ausgeschaltet wird:
void MainWindow::on_actionTon_ein_aus_triggered()
{
//ist die Lautstärke eingeschaltet?
if (meinPlayer->isMuted() == false)
{
//dann ausschalten
meinPlayer->setMuted(true);
ui->actionTon_ein_aus->setIcon(QIcon(":/images/mute_off.png"));lautstaerkeSlider->setValue(0); } //sonst einschalten else { meinPlayer->setMuted(false); ui->actionTon_ein_aus->setIcon(QIcon(":/images/mute.png")); //Einsendeaufgabe 2 lautstaerkeSlider->setValue(100); }
}
Der Knackpunkt ist die Anweisung: lautstaerkeSlider->setValue(100); Statt 100 müsste die Position des Slider angegeben werden, die vor dem muten bestand. Wie kann ich das machen?
-
Es geht um einen Multimedia-Player, der einen Lautstärke-Slider und ein Ton-aus-ein-Symbol, das automatisch angezeigt wird, wenn der Slider auf Null bzw. nicht auf Null eingestellt ist. Nun soll der Slider automatisch auf die vorherige Position springen, wenn der Ton über das Symbol ausgeschaltet wird:
void MainWindow::on_actionTon_ein_aus_triggered()
{
//ist die Lautstärke eingeschaltet?
if (meinPlayer->isMuted() == false)
{
//dann ausschalten
meinPlayer->setMuted(true);
ui->actionTon_ein_aus->setIcon(QIcon(":/images/mute_off.png"));lautstaerkeSlider->setValue(0); } //sonst einschalten else { meinPlayer->setMuted(false); ui->actionTon_ein_aus->setIcon(QIcon(":/images/mute.png")); //Einsendeaufgabe 2 lautstaerkeSlider->setValue(100); }
}
Der Knackpunkt ist die Anweisung: lautstaerkeSlider->setValue(100); Statt 100 müsste die Position des Slider angegeben werden, die vor dem muten bestand. Wie kann ich das machen?
@hexenepomuk said in Position eines sliders wieder einstellen:
Der Knackpunkt ist die Anweisung: lautstaerkeSlider->setValue(100); Statt 100 müsste die Position des Slider angegeben werden, die vor dem muten bestand. Wie kann ich das machen?
Wenn der Knopf gedrückt wird, die aktuelle Lautstärke in einer Membervariablen speichern und dann bei unmute den Wert einfach wieder setzen (dabei kann der Slider ja auch an die Position gesetzt werden).
Idealerweise sollte es eh eine connection von dem Slider zu einem Lautstärke-Wert in dem Player geben... so muss nicht immer der Slider abgefragt werden, wenn man an die Lautstärke möchte. Dann hättest du das Problem hier erst gar nicht ;-)
Mit dem SignalvalueChanged
kann man dann den Slider und die Variable synchronisieren, sodass sie immer den aktuellen Wert enthält. Dazu dann noch eine Art backup Variable, die bei "Mute" den Wert des Lautstärke"members" übernimmt und danach "immun" gegen Änderungen des Sliders ist.