最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt實(shí)現(xiàn)畫(huà)筆功能

 更新時(shí)間:2022年08月19日 17:01:42   作者:碼靈薯  
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)畫(huà)筆功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用Qt實(shí)現(xiàn)在窗口上畫(huà)線,類似于畫(huà)筆功能。

頭文件

#ifndef MyPaint_h__
#define MyPaint_h__

#include <QtWidgets/QWidget>

class MyPaint :public QWidget
{
?? ?Q_OBJECT
public:
?? ?MyPaint(QWidget *parent = nullptr);

?? ?void mousePressEvent(QMouseEvent *event);
?? ?void mouseMoveEvent(QMouseEvent *event);
?? ?void mouseReleaseEvent(QMouseEvent *event);
?? ?void paintEvent(QPaintEvent *event);

private:
?? ?std::vector<std::vector<QPoint>> _lines;

};

#endif // MyPaint_h__

實(shí)現(xiàn)

#include "MyPaint.h"
#include <QPainter>
#include <QMouseEvent>


MyPaint::MyPaint(QWidget *parent):QWidget(parent)
{

}

void MyPaint::mousePressEvent(QMouseEvent *event) //鼠標(biāo)按下的時(shí)候新增加一條線,并記錄起點(diǎn)
{
?? ?std::vector<QPoint> line; ?
?? ?line.push_back(event->pos());
?? ?_lines.push_back(line);
}

void MyPaint::mouseMoveEvent(QMouseEvent *event)//鼠標(biāo)移動(dòng)的時(shí)候新增加點(diǎn)
{
?? ?auto &line = _lines[_lines.size() - 1];
?? ?line.push_back(event->pos());

?? ?update(); //更新,重新繪制窗口,自動(dòng)調(diào)用paintEvent
}

void MyPaint::mouseReleaseEvent(QMouseEvent *event)
{
?? ?auto &line = _lines[_lines.size() - 1];
?? ?line.push_back(event->pos());
}

void MyPaint::paintEvent(QPaintEvent *event) //繪制所有的線
{
?? ?//QPainter painter(this);
?? ?//painter.setPen(QPen(Qt::red, 3, Qt::DashLine));
?? ?//painter.setBrush(Qt::blue);
?? ?//painter.drawRect(QRect(10, 10, 100, 30));
?? ?//painter.drawEllipse(130, 10, 50, 50);
?? ?//painter.drawLine(QLine(200, 10, 300, 20));
?? ?//painter.drawText(QPoint(10, 70), "hello" );
?? ?QPainter painter(this);
?? ?painter.setPen(QPen(Qt::green, 3));
?? ?for (const auto &line : _lines)
?? ?{
?? ??? ?for (int i=0;i<line.size()-1;i++)
?? ??? ?{
?? ??? ??? ?painter.drawLine(line.at(i), line.at(i + 1));
?? ??? ?}
?? ?}
}

效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實(shí)現(xiàn)分水嶺算法(Watershed Algorithm)

    C++實(shí)現(xiàn)分水嶺算法(Watershed Algorithm)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)分水嶺算法Watershed Algorithm,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一 下
    2018-01-01
  • C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[五]

    C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[五]

    C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[五]...
    2007-02-02
  • C++函數(shù)重載的細(xì)節(jié)圖文詳解

    C++函數(shù)重載的細(xì)節(jié)圖文詳解

    函數(shù)重載即函數(shù)名相同,函數(shù)形參列表不同(函數(shù)特征標(biāo)不同)的一類函數(shù)稱為函數(shù)重載,下面這篇文章主要給大家介紹了關(guān)于C++函數(shù)重載的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • C++實(shí)現(xiàn)堆排序示例

    C++實(shí)現(xiàn)堆排序示例

    這篇文章主要介紹了C++實(shí)現(xiàn)堆排序示例,全文運(yùn)用大量代碼完成堆排序,需要了解的朋友可以參考一下這篇文章
    2021-08-08
  • C++實(shí)現(xiàn)OpenCV方框?yàn)V波的代碼

    C++實(shí)現(xiàn)OpenCV方框?yàn)V波的代碼

    這篇文章主要介紹了C++ OpenCV方框?yàn)V波的實(shí)現(xiàn),方框?yàn)V波是均值濾波的一種形式,今天通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • C語(yǔ)言遞歸思想實(shí)現(xiàn)漢諾塔詳解

    C語(yǔ)言遞歸思想實(shí)現(xiàn)漢諾塔詳解

    大家好,本篇文章主要講的是C語(yǔ)言遞歸思想實(shí)現(xiàn)漢諾塔詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 淺談C++11的std::mem_fn源碼解析

    淺談C++11的std::mem_fn源碼解析

    本文是基于gcc-4.9.0的源代碼進(jìn)行分析,std::mem_fn是C++11才加入標(biāo)準(zhǔn)的,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語(yǔ)言實(shí)現(xiàn)楊輝三角實(shí)例

    C語(yǔ)言實(shí)現(xiàn)楊輝三角實(shí)例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)楊輝三角的方法,主要通過(guò)數(shù)組簡(jiǎn)單實(shí)現(xiàn),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • C++深入探究用NULL來(lái)初始化空指針是否合適

    C++深入探究用NULL來(lái)初始化空指針是否合適

    在C++11新特性中,我們用nullptr來(lái)表示指針空值,這是為什么呢?好好地NULL為什么不繼續(xù)使用呢?說(shuō)明在創(chuàng)造C++的大佬們一定發(fā)現(xiàn)了什么Bug,本篇我們就一起來(lái)討論一下吧
    2022-05-05
  • C/C++細(xì)數(shù)宏與函數(shù)有那些區(qū)別

    C/C++細(xì)數(shù)宏與函數(shù)有那些區(qū)別

    在C程序中,可以用宏代碼提高執(zhí)行效率。宏代碼本身不是函數(shù),但使用起來(lái)象函數(shù)。預(yù)處理器用復(fù)制宏代碼的方式代替函數(shù)調(diào)用,省去了參數(shù)壓棧、生成匯編語(yǔ)言的CALL調(diào)用、返回參數(shù)、執(zhí)行return等過(guò)程,從而提高了速度
    2022-10-10

最新評(píng)論

定襄县| 石家庄市| 庆元县| 长丰县| 陵水| 湘潭市| 武宁县| 敖汉旗| 平果县| 新干县| 东乡族自治县| 兰溪市| 饶平县| 丰宁| 津市市| 阿拉尔市| 土默特左旗| 什邡市| 江川县| 金平| 德钦县| 嘉鱼县| 巴塘县| 高台县| 高清| 丰原市| 综艺| 同仁县| 临颍县| 大悟县| 宣城市| 石嘴山市| 观塘区| 乐东| 永修县| 大洼县| 珲春市| 沭阳县| 陆河县| 安福县| 贵州省|