5_2_Chess(二)画线
文章目录
- 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(二)画线相关推荐
- 最简单的Ogre系列之二——画线
转载自:http://blog.csdn.net/zhuxiaoyang2000/article/details/6326315 在最简单的Ogre程序(不使用ExampleListener/Appl ...
- 小学计算机《画线》的教案,(人教版)小学信息技术二册课《画线条》word教案.pdf...
一年级下信息技术教案 主备教师: 备课时间: 2019.3.1 授课教师: 教案时间: 个性修改 课题 第 5 课 画线条 教案内容: 1. 用铅笔工具画线 2 . 用直线工具画线 3. 用曲线工具画 ...
- 图形学笔记(二)——线画图元
像素网格坐标:每个像素区域标识为每个像素点的中心 屏幕网格坐标:每个像素区域由左下角整数网格坐标来指定 直线 基本原则:当斜率绝对值|m|<1时通过Δx=>Δ\Delta x=>\D ...
- JAVA实现中点画线_实验1-中点画线和Bresenham画线算法的实现
<实验1-中点画线和Bresenham画线算法的实现>由会员分享,可在线阅读,更多相关<实验1-中点画线和Bresenham画线算法的实现(9页珍藏版)>请在人人文库网上搜索. ...
- OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)
用OpenGL动态绘制线段.事实上非常easy,但到如今为止.网上可參考资料并不多. 于是亲自己主动手写一个函数,方便动态绘制线段.代码例如以下: #include<GL/glut.h> ...
- Python中星号、下画线、斜线含义汇总
封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...
- vue使用高德地图小demo(标记点,画线,3D,叠加图片图层)
vue使用高德地图小demo(标记点,画线,3D) 这个模式是3D的,可以看到地图是带有一定的倾角的. 注意:3D模式下,是不能够将进行画线的,不能使用PathSimplifier,改成2D可以正常使 ...
- android画cci指标代码,大智慧CCI画线指标源码 副图公式
相关标签: 大智慧cci指标选股 . cci指标实战技巧图解 . cci指标 . cci指标炒股绝招 . cci精准选股指标公式 . cci指标 最佳参数 . cci指标最优参数 . cci指标视频 ...
- QT 实现Label上画线
实现功能:Label上有一张图片,用画笔在图像上画线. 一.头文件添加以下函数和变量 QMouseEvent * mouseEvent;void mousePressEvent(QMouseEvent ...
最新文章
- Map字符串类型去掉空格处理
- nginx平滑升级make upgrade出错的解决办法
- android 真机 sqlite3,在android真机上使用sqlite3
- php基础教程 第六步 学习数组以及条件判断switch补充
- zookeeper部署
- ORA-12638 凭证检索失败
- wap页面和html5,WAP网站、3G网站、html5触屏版有什么区别?
- WEB打印插件Lodop
- 错落有致——集团企业信息化规划原则
- 网络工程师/计算机网络知识如何入门,以及学习路线?
- 用latex排版中的对象旋转问题
- html滚动条自动翻页,10款无限滚动自动翻页jquery插件
- 提升线下实体店铺购物体验
- 02 Redis 底层数据结构
- 微生物学期末复习重点
- Mapper method ‘com.xxx.dao.ActivityDao.update attempted to return null from a method with a primiti
- 韦东山:驱动和APP,根本不应该上升到互相鄙视的地步
- 关于接入达达开发者文档的一些问题
- 两台华为交换机组网互通方法
- 苹果电脑错误代码43_苹果最臭名昭著的代码错误
热门文章
- u8系统怎么连接服务器,怎么U8客户端连接服务器
- 【学习记录】Inception结构的简单介绍及Filter Concatenation的理解
- SS528海思hi3531dv200详解,DVR芯片的应用22AP30
- Unity 插件使用笔记
- 如何彻底禁止 macOS Monterey 自动更新,去除更新标记和通知
- c语言 max库函数,C 库函数 – strftime() | 菜鸟教程
- QT在VS环境下双击*.ui打不开Qt designer(Qt设计师)的解决方法
- 【踩坑】HTML5 Video 标签 poster 属性 无法在苹果Safari浏览器显示视频封面
- 场效应管(mos管)的通断学习
- html中js控制分页,js控制分页打印、打印分页示例