一、前言
上次有個群友在咨詢這個問題,如何用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());
}
三、效果圖
四、開源主頁
以上作品完整源碼下載都在開源主頁,會持續不斷更新作品數量和質量,歡迎各位關注。