Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Position eines sliders wieder einstellen
Forum Updated to NodeBB v4.3 + New Features

Position eines sliders wieder einstellen

Scheduled Pinned Locked Moved Unsolved German
2 Posts 2 Posters 508 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    hexenepomuk
    wrote on last edited by
    #1

    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?

    Pl45m4P 1 Reply Last reply
    0
    • H hexenepomuk

      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?

      Pl45m4P Offline
      Pl45m4P Offline
      Pl45m4
      wrote on last edited by Pl45m4
      #2

      @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 Signal valueChanged 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.

      • https://doc.qt.io/qt-5/qabstractslider.html#valueChanged

      If debugging is the process of removing software bugs, then programming must be the process of putting them in.

      ~E. W. Dijkstra

      1 Reply Last reply
      1

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved