2017-07-17 1 views
0

Ich entwickle einen Media Player basierend auf libvc, ich möchte einen Fortschrittsbalken wie der in Kmplayer zum Beispiel machen, denke ich in einer Bar, die zeigt den Fortschritt an, erlaubt mir aber auch, die Position des Films mit einem Klick auf die gewünschte Position auf der Leiste zu ändern. Die Fortschrittsanzeige des Kmplayers zeigt den Titel des Films auf der linken Seite und die Dauer auf der rechten Seite an. (Angehängtes Bild zeigt die gewünschten grün markierten Effekte.)Wie mache ich einen benutzerdefinierten Fortschrittsbalken für Media Player auf Qt Creator

Wie kann ich dieses Aussehen kopieren? Ich denke, dass ich meine eigene Unterklasse von QProgressBar erstellen muss, aber könnte mir bitte jemand in die richtige Richtung zeigen? ...

Kmplayer Progress Bar Bild

+0

Um die Position mit der Maus zu steuern Unterklasse der [Mausereignisse] (http://doc.qt.io/qt-5/qwidget.html #mouseMoveEvent). Für die Textinformationen können Sie sich die Funktion [paintEvent()] (http://doc.qt.io/qt-5/qprogressbar.html#paintEvent) ansehen. –

+0

Danke Thibaut B. Ich bin dabei – silverhawk

+0

Sie könnten mir das Zeitformat mitteilen, das Sie anzeigen möchten. – eyllanesc

Antwort

0

Hier ein Beispiel für paintEvent():

void ProgressBar::paintEvent(QPaintEvent *e) 
{ 
    QProgressBar::paintEvent(e); // draw default 
    // draw your information 
    QPainter painter(this); 

    // the pen 
    QPen pen = painter.pen(); 
    pen.setColor(Qt::black); 

    // write 
    painter.setPen(pen); 
    painter.drawText(1, 1, width()-1, height()-1, 
     Qt::AlignLeft | Qt::AlignVCenter, 
     "filename.mp4"); 
    painter.drawText(1, 1, width()-1, height()-1, 
     Qt::AlignRight | Qt::AlignVCenter, 
     "your time"); 
    painter.end(); 
} 

Wollen Sie so etwas wie dieses geben:
your own progress bar

+0

@ ThibautB.Vielen Dank. Dieses Beispiel ist genau das, was ich QPaintEvent inside verstehen muss. Ich werde bald den Rest meines Codes für jeden veröffentlichen, der etwas Ähnliches braucht. – silverhawk

+0

@silverhawk, Wenn Sie nicht möchten, dass der Fortschrittsbalken in Prozent angezeigt wird, lesen Sie diesen Teil des Dokuments: ['' 'setTextVisible()' ''] (http://doc.qt.io/qt-5/ qprogressbar.html # textVisible-prop), wenn alles in Ordnung ist, vergiss nicht, die Antwort zu akzeptieren. –

Verwandte Themen