天天看點

QTreeview上面劃線[通俗易懂]

大家好,又見面了,我是你們的朋友全棧君。

因為要做一個動畫編輯器功能,需要有時間标線,我使用了QTreeview作為顯示控件,但是上面劃線就是個大問題,經過幾番嘗試終于找到辦法了。先上圖

QTreeview上面劃線[通俗易懂]

具體辦法就是繼承了qtreeview 并且重載paintevent這個函數

void ActionTreeView::paintEvent(QPaintEvent *event) { Q_UNUSED(event);
    QTreeView::paintEvent(event);
    QPainter painter(viewport());
    painter.setPen(QPen(QColor(255,0,0)));
    painter.drawLine(QPointF(100,100),QPointF(400,400));
}           

複制

這裡要注意兩點,第一就是要先調用QTreeview的原生paintEvent,第二點就是構造painter時候不要用this指針,要用viewport(),我也是看了源代碼抄來的,嘿嘿,第一次寫部落格,有點亂,大家見諒!!!

釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/138890.html原文連結:https://javaforall.cn