当前位置: 首页 > wzjs >正文

网站如何做网络推广织梦pc怎么做手机网站

网站如何做网络推广,织梦pc怎么做手机网站,工程造价信息网官网首页,南昌建设企业网站公司一、作业 1:实现绘图的时候,颜色的随时调整; 2:追加橡皮擦功能; 3:配合键盘事件,实现功能; 当键盘按 ctrlz 的时候,撤销最后一次绘图。 【Headers / widget.h】&#xff…

一、作业

        1:实现绘图的时候,颜色的随时调整;

        2:追加橡皮擦功能;

        3:配合键盘事件,实现功能;

        当键盘按 ctrl+z 的时候,撤销最后一次绘图。

【Headers / widget.h】:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
#include <QDebug>
#include <QMouseEvent>
#include <QLine>
#include <QVector>
#include <QColorDialog>
#include <QColor>
#include <QKeyEvent>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;QPainter painter;QPen pen;QPoint start;QPoint end;QVector<QLine> lines;QColor color;QColor previousColor; //橡皮擦模式前的颜色QVector<QColor> colors;int width = 1;QVector<int> widths;bool isEraserMode = false; //橡皮擦模式标志protected:virtual void paintEvent(QPaintEvent *event) override;virtual void mouseMoveEvent(QMouseEvent *event) override;virtual void mousePressEvent(QMouseEvent *event) override;virtual void mouseReleaseEvent(QMouseEvent *event) override;virtual void keyPressEvent(QKeyEvent *event) override;private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();
};
#endif // WIDGET_H

【Sources / widget.cpp】:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::paintEvent(QPaintEvent *event)
{painter.begin(this);painter.setPen(pen);// 遍历所有线段,并为每条线段设置对应的颜色for(int i = 0; i < lines.size(); ++i){// 使用存储的颜色pen.setColor(colors.at(i));pen.setWidth(widths.at(i));painter.setPen(pen);painter.drawLine(lines.at(i));}painter.end();
}void Widget::mouseMoveEvent(QMouseEvent *event)
{end = event->pos();QLine line(start, end);// 将鼠标绘制的每一根线段存入QVector中,即lines里面lines << line;colors << color;widths << width;// 更新坐标start = end;// 手动触发paintEvent绘图事件update();
}void Widget::mousePressEvent(QMouseEvent *event)
{start = event->pos();
}void Widget::mouseReleaseEvent(QMouseEvent *event)
{end = event->pos();
}void Widget::keyPressEvent(QKeyEvent *event)
{qDebug() << "Warning: 主子,这家伙按下了 Ctrl+Z 呀!!!";if(event->modifiers() == Qt::ControlModifier && event->key() == Qt::Key_Z){if(!lines.isEmpty()){lines.removeLast();colors.removeLast();widths.removeLast();update();}}
}// 打开调色板
void Widget::on_pushButton_clicked()
{color = QColorDialog::getColor(Qt::black, this, "选择颜色");
}// 画笔宽度
void Widget::on_pushButton_2_clicked()
{width = 1;
}void Widget::on_pushButton_3_clicked()
{width = 5;
}void Widget::on_pushButton_4_clicked()
{width = 10;
}
// 橡皮擦
void Widget::on_pushButton_5_clicked()
{// 切换橡皮擦模式isEraserMode = !isEraserMode;if(isEraserMode){// 进入橡皮擦模式,保存当前颜色并将画笔颜色设置为窗口背景色previousColor = color;// 橡皮擦设置为背景色color = palette().color(QPalette::Window);// 按钮文字状态改为“切换到画笔”ui->pushButton_5->setText("切换到画笔");}else{// 退出橡皮擦模式,恢复画笔颜色为之前保存的颜色color = previousColor;// 按钮文字状态改为“橡皮擦”ui->pushButton_5->setText("橡皮擦");}
}

【Sources / main.cpp】:

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

【测试结果UI】:

http://www.dtcms.com/wzjs/820481.html

相关文章:

  • 站酷网素材图库免费下载wordpress 主题 使用教程
  • 重庆品牌型网站建设多少钱怎么优化网站源代码
  • 珠海网站建设解决方案外国人做家具的网站
  • 网站死链如何修改毕业设计代做网站 知乎
  • 怎么用电脑做网站服务器吗凡客诚品商品来源
  • 手机版网站建设合同网站建设推广邮件
  • 网站图片链接是怎么做的wordpress运行代码
  • 网站代码规范性钓鱼软件怎么制作
  • 做网站关键词必须要中文网址汕头公众号建设网站
  • 可以做网站的软件浏览器在线进入
  • 白羊女做网站门户网站开发的意义
  • 域名注册好了怎么做网站网站一键生成app
  • windows网站模板中山建设厅网站首页
  • 广州网站优化价格Wordpress吃内存怎么办
  • 深圳网站建设那家好网站站长在哪登陆后台
  • 个人网站建设知乎邯郸网站设计价位
  • 购物网站开发历史网站常用的蓝色
  • 网站设计图尺寸企业年报系统登录入口
  • 月编程做网站怎么让关键词快速排名首页
  • 杭州网站备案五台网站建设
  • 网站开发行业代码wordpress说说
  • 企业品牌网站建设首选公司重庆飘逸科技有限公司
  • 网站建设与网站开发合肥seo优化外包公司
  • 兼职做商务标哪个网站郑州有哪些搞网站开发的公司
  • 广州建网站比较有名的公司创意设计作品赏析
  • 海兴做网站国外网站建设品牌
  • 建设咨询网站wordpress友情链接导入
  • 电子商务网站建设的建议企业宽带
  • 怎么在360做网站北京展厅展馆设计公司
  • 腾讯云域名如何建设网站wordpress新浪微博图床