天天看點

Qt開源作品27-滑鼠定位十字線

一、前言

上次有個群友在咨詢這個問題,如何用Qt繪制一個滑鼠定位的十字線,花了兩分鐘整了個,最沒有含金量的一個demo,就是用drawline繪制了兩條線,這個效果在經典的CAD軟體中很常用,還有一些股票軟體,也有這種十字線定位線,有時候需要在十字交叉地方擷取對應點的資料來顯示等。Qt來繪制各種效果還是非常友善的,還是那句話:心中有坐标,萬物皆painter。

二、代碼思路

void Widget::mouseMoveEvent(QMouseEvent *event)
{
    lastPos = event->pos();
    update();
}

void Widget::mouseReleaseEvent(QMouseEvent *event)
{
    //這裡是滑鼠按下的坐标,自己存到資料庫
    lastPos = event->pos();
    update();
    qDebug() << lastPos;
}

void Widget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);

    QPen pen;
    pen.setWidth(5);
    pen.setColor(Qt::red);
    painter.setPen(pen);

    //繪制橫向線
    painter.drawLine(0, lastPos.y(), width(), lastPos.y());
    //繪制縱向線
    painter.drawLine(lastPos.x(), 0, lastPos.x(), height());
}           

三、效果圖

Qt開源作品27-滑鼠定位十字線

四、開源首頁

以上作品完整源碼下載下傳都在開源首頁,會持續不斷更新作品數量和品質,歡迎各位關注。

  1. 國内站點: https://gitee.com/feiyangqingyun/QWidgetDemo
  2. 國際站點: https://github.com/feiyangqingyun/QWidgetDemo
  3. 個人首頁: https://blog.csdn.net/feiyangqingyun
  4. 知乎首頁: https://www.zhihu.com/people/feiyangqingyun/