文章目录

  • 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. shell中的命令替换和变量替换
  2. angr学习笔记(4) (寄存器符号化)
  3. 测试版降级后软件还在么,如果你后悔安装iOS12想降到iOS11?几招教你删除iOS12测试版...
  4. Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...
  5. CF1045G AI robots(动态开点线段树)
  6. java决策树算法_「Smile」一下,轻松用Java玩转机器学习
  7. ASP.NET MVC 利用Razor引擎生成静态页
  8. oppor15android10怎么降级,OPPO R9S7.1系统怎么降回6.0版本 OPPO R9S7.1系统降级教程
  9. SpringSecurity简单教程(源码开源免费提供)
  10. 优秀在线答题小程序汇总分享
  11. 【脑图制作】万彩脑图大师教程 | 修改主题样式
  12. 为什么我不推荐去SAP培训机构参加培训?
  13. 弗兰克(最少五个字)
  14. Java实现接口(打印机)
  15. oracle awr 里的socket,AWR 报告中CPUs Cores 和 Sockets 说明
  16. 阿里云+Android Studio+sql数据库实现增改删查与云端登录数据交互
  17. [递推式求解、多指针、前缀和]XATU第七届算法大赛
  18. 宝塔面板备份和恢复WordPress网站完整教程
  19. 游戏老虎吃绵羊 -- lua
  20. MATLAB打开.mat图像文件

热门文章

  1. 《标签类目体系-面向业务的数据资产设计方法论》 读书随记
  2. 如何使用远程服务器(1)——连接服务器
  3. 安卓全机型 玩机 搞机 ADB FAST 各种指令解析说明与操作
  4. 程序员日均写7行代码被开除,公司:正常员工每天200行
  5. 分享几个好玩又好用的微信小程序
  6. 第1套 从零到实战脚本课程 易大漠篇
  7. win11edge怎么卸载?彻底卸载edge
  8. 搜免费电子书,怎么能少了这些网站!
  9. GhostNetV2(2022)(全文翻译)
  10. python自动交易脚本_python交易库 Python自动化交易 - 网银支付 - 服务器之家