我正在開發一個基於libvc的媒體播放器,我想在Kmplayer中創建一個進度條,例如,我在一個酒吧顯示進度,但也允許我通過點擊欄上所需的位置來改變電影的位置。此外,Kmplayer的進度條顯示左側的電影標題以及右側的持續時間/已用時間(附圖顯示了所需的綠色效果)如何在Qt Creator上爲媒體播放器製作自定義進度條
如何複製該外觀?我認爲我需要創建我自己的QProgressBar的子類,但是有人能指出我的方向嗎? ...
Kmplayer的進度條圖片
我正在開發一個基於libvc的媒體播放器,我想在Kmplayer中創建一個進度條,例如,我在一個酒吧顯示進度,但也允許我通過點擊欄上所需的位置來改變電影的位置。此外,Kmplayer的進度條顯示左側的電影標題以及右側的持續時間/已用時間(附圖顯示了所需的綠色效果)如何在Qt Creator上爲媒體播放器製作自定義進度條
如何複製該外觀?我認爲我需要創建我自己的QProgressBar的子類,但是有人能指出我的方向嗎? ...
Kmplayer的進度條圖片
這裏的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();
}
@ ThibautB.Thanks很多。這個例子是我理解QPaintEvent內部所需要的。我將很快發佈我的代碼的其餘部分給需要類似的任何人。 – silverhawk
@silverhawk,如果你不想進度條的百分比,請閱讀這部分文檔:['''setTextVisible()'''](http://doc.qt.io/qt-5/ qprogressbar.html#textVisible-prop),如果一切正常,不要忘記接受答案。 –
要控制鼠標的位置,[鼠標事件]的子類(http://doc.qt.io/qt-5/qwidget.html #mouseMoveEvent)。對於文本信息,您可以看一下[paintEvent()](http://doc.qt.io/qt-5/qprogressbar.html#paintEvent)函數。 –
謝謝Thibaut B.我在上面 – silverhawk
你可以告訴我你想要顯示的時間格式。 – eyllanesc