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