文章目录

  • 1、效果图
  • 2、chess.c
  • 3、chess.h

1、效果图

2、chess.c

#include "chess.h"Chess::Chess(QWidget *parent): QWidget(parent)
{Init();
}Chess::~Chess()
{}//-----------events-------------
//画背景 绘图事件里
void Chess::paintEvent(QPaintEvent *){QPainter painter(this);//画家//方式一:用画家画矩形的方式
//    QRect rec;
//    rec.setTopLeft(QPoint(0,0));
//    rec.setBottomRight(QPoint(this->width(),this->height()));
//    QPixmap pix("../png/2.jpg");
//    bool ret;
//        ret=pix.load("../png/2.jpg");
//    if(ret==true)
//       painter.drawPixmap(rec,pix);//方式二:直接使用构造函数QRect rec(QPoint(0,0),QPoint(this->width(),this->height()));//定义矩形QPixmap pix(bgFilename);qDebug()<<bgFilename<<endl;painter.drawPixmap(rec,pix);//画线QPen pen1;pen1.setStyle(lineStyle);pen1.setColor(lineColor);pen1.setWidth(lineWidth);painter.setPen(pen1);//笔交给画家for(int i=0;i<=8;i++){//x//painter.drawLine(startx,starty,9*gridwidth,starty);painter.drawLine(startx,starty+i*gridheight,9*gridwidth,starty+i*gridheight);//起点 终点坐标//y//painter.drawLine(startx,starty,startx,starty+8*gridheight);painter.drawLine(startx+i*gridwidth,starty,startx+i*gridwidth,starty+8*gridheight);}
}//窗体改变立马赋值
void Chess::resizeEvent(QResizeEvent *event){gridwidth = event->size().width()/GRIDCOLINT;gridheight =event->size().height()/GRIDCOLINT;startx = gridwidth;starty = gridheight;qDebug()<<"x::"<<startx<<"y::"<<starty;
}//-----------end event----------
void Chess::Init(){bgFilename.clear();bgFilename = "../png/2.jpg";//线的默认值lineColor = Qt::red;lineStyle = Qt::SolidLine;lineWidth = 3;
}
//-----------function-----------
//提供方法,供外部改变背景
void Chess::ChangeBackgroundImage(const QString filename){this->bgFilename=filename;
}//提供方法,供外部改变线颜色、类型、宽度
void Chess::ChangeLine(const QColor color, Qt::PenStyle style, const int width){this->lineColor = color;this->lineStyle = style;this->lineWidth = width;
}//-----------end function-------

3、chess.h

#ifndef CHESS_H
#define CHESS_H#include <QWidget>
#include <QPainter>
#include <QPen>
#include <QDebug>
#include <QResizeEvent>
#define GRIDCOLINT 10
class Chess : public QWidget
{Q_OBJECTpublic:Chess(QWidget *parent = 0);~Chess();void ChangeBackgroundImage(const QString filename); //提供方法,供外部改变背景void ChangeLine(const QColor color,Qt::PenStyle style,const int width);//提供方法,供外部改变线颜色\类型\宽度protected:void paintEvent(QPaintEvent *);//绘图事件void resizeEvent(QResizeEvent *event);
private:QString bgFilename;QColor lineColor;Qt::PenStyle lineStyle;int lineWidth;int gridwidth,gridheight,startx,starty;//格子宽高,划线起始点void Init();};#endif // CHESS_H

5_2_Chess(二)画线相关推荐

  1. 最简单的Ogre系列之二——画线

    转载自:http://blog.csdn.net/zhuxiaoyang2000/article/details/6326315 在最简单的Ogre程序(不使用ExampleListener/Appl ...

  2. 小学计算机《画线》的教案,(人教版)小学信息技术二册课《画线条》word教案.pdf...

    一年级下信息技术教案 主备教师: 备课时间: 2019.3.1 授课教师: 教案时间: 个性修改 课题 第 5 课 画线条 教案内容: 1. 用铅笔工具画线 2 . 用直线工具画线 3. 用曲线工具画 ...

  3. 图形学笔记(二)——线画图元

    像素网格坐标:每个像素区域标识为每个像素点的中心 屏幕网格坐标:每个像素区域由左下角整数网格坐标来指定 直线 基本原则:当斜率绝对值|m|<1时通过Δx=>Δ\Delta x=>\D ...

  4. JAVA实现中点画线_实验1-中点画线和Bresenham画线算法的实现

    <实验1-中点画线和Bresenham画线算法的实现>由会员分享,可在线阅读,更多相关<实验1-中点画线和Bresenham画线算法的实现(9页珍藏版)>请在人人文库网上搜索. ...

  5. OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)

    用OpenGL动态绘制线段.事实上非常easy,但到如今为止.网上可參考资料并不多. 于是亲自己主动手写一个函数,方便动态绘制线段.代码例如以下: #include<GL/glut.h> ...

  6. Python中星号、下画线、斜线含义汇总

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...

  7. vue使用高德地图小demo(标记点,画线,3D,叠加图片图层)

    vue使用高德地图小demo(标记点,画线,3D) 这个模式是3D的,可以看到地图是带有一定的倾角的. 注意:3D模式下,是不能够将进行画线的,不能使用PathSimplifier,改成2D可以正常使 ...

  8. android画cci指标代码,大智慧CCI画线指标源码 副图公式

    相关标签: 大智慧cci指标选股 . cci指标实战技巧图解 . cci指标 . cci指标炒股绝招 . cci精准选股指标公式 . cci指标 最佳参数 . cci指标最优参数 . cci指标视频 ...

  9. QT 实现Label上画线

    实现功能:Label上有一张图片,用画笔在图像上画线. 一.头文件添加以下函数和变量 QMouseEvent * mouseEvent;void mousePressEvent(QMouseEvent ...

最新文章

  1. Map字符串类型去掉空格处理
  2. nginx平滑升级make upgrade出错的解决办法
  3. android 真机 sqlite3,在android真机上使用sqlite3
  4. php基础教程 第六步 学习数组以及条件判断switch补充
  5. zookeeper部署
  6. ORA-12638 凭证检索失败
  7. wap页面和html5,WAP网站、3G网站、html5触屏版有什么区别?
  8. WEB打印插件Lodop
  9. 错落有致——集团企业信息化规划原则
  10. 网络工程师/计算机网络知识如何入门,以及学习路线?
  11. 用latex排版中的对象旋转问题
  12. html滚动条自动翻页,10款无限滚动自动翻页jquery插件
  13. 提升线下实体店铺购物体验
  14. 02 Redis 底层数据结构
  15. 微生物学期末复习重点
  16. Mapper method ‘com.xxx.dao.ActivityDao.update attempted to return null from a method with a primiti
  17. 韦东山:驱动和APP,根本不应该上升到互相鄙视的地步
  18. 关于接入达达开发者文档的一些问题
  19. 两台华为交换机组网互通方法
  20. 苹果电脑错误代码43_苹果最臭名昭著的代码错误

热门文章

  1. u8系统怎么连接服务器,怎么U8客户端连接服务器
  2. 【学习记录】Inception结构的简单介绍及Filter Concatenation的理解
  3. SS528海思hi3531dv200详解,DVR芯片的应用22AP30
  4. Unity 插件使用笔记
  5. 如何彻底禁止 macOS Monterey 自动更新,去除更新标记和通知
  6. c语言 max库函数,C 库函数 – strftime() | 菜鸟教程
  7. QT在VS环境下双击*.ui打不开Qt designer(Qt设计师)的解决方法
  8. 【踩坑】HTML5 Video 标签 poster 属性 无法在苹果Safari浏览器显示视频封面
  9. 场效应管(mos管)的通断学习
  10. html中js控制分页,js控制分页打印、打印分页示例