2017-07-17 29 views
0

我正在開發一個基於libvc的媒體播放器,我想在Kmplayer中創建一個進度條,例如,我在一個酒吧顯示進度,但也允許我通過點擊欄上所需的位置來改變電影的位置。此外,Kmplayer的進度條顯示左側的電影標題以及右側的持續時間/已用時間(附圖顯示了所需的綠色效果)如何在Qt Creator上爲媒體播放器製作自定義進度條

如何複製該外觀?我認爲我需要創建我自己的QProgressBar的子類,但是有人能指出我的方向嗎? ...

Kmplayer的進度條圖片

​​

+0

要控制鼠標的位置,[鼠標事件]的子類(http://doc.qt.io/qt-5/qwidget.html #mouseMoveEvent)。對於文本信息,您可以看一下[paintEvent()](http://doc.qt.io/qt-5/qprogressbar.html#paintEvent)函數。 –

+0

謝謝Thibaut B.我在上面 – silverhawk

+0

你可以告訴我你想要顯示的時間格式。 – eyllanesc

回答

0

這裏的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(); 
} 

會給你這樣的事情:
your own progress bar

+0

@ ThibautB.Thanks很多。這個例子是我理解QPaintEvent內部所需要的。我將很快發佈我的代碼的其餘部分給需要類似的任何人。 – silverhawk

+0

@silverhawk,如果你不想進度條的百分比,請閱讀這部分文檔:['''setTextVisible()'''](http://doc.qt.io/qt-5/ qprogressbar.html#textVisible-prop),如果一切正常,不要忘記接受答案。 –

相關問題