生活随笔
收集整理的這篇文章主要介紹了
Qt学习:棋盘游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
知識點
畫背景圖、線條qDebug()與QString聯合使用
qDebug()<<QString("(%1,%2)").arg(checkX
).arg(checkY
);
結果演示
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui
{
class Widget;
}class Widget : public QWidget
{Q_OBJECT
public:explicit Widget(QWidget
*parent
= 0);~Widget();private:void paintEvent(QPaintEvent
*ev
);void mousePressEvent(QMouseEvent
*ev
);int startX
;int startY
;int widthC
;int heightC
;int checkX
;int checkY
;private:Ui
::Widget
*ui
;
};#endif
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPaintEvent>
#include <QMouseEvent>
#include <QPen>
#include <QMessageBox>
#include <QDebug>Widget::Widget(QWidget
*parent
) :QWidget(parent
),ui(new Ui
::Widget
)
{ui
->setupUi(this);resize(700,400);checkX
=-1;checkY
=-1;
}void Widget::paintEvent(QPaintEvent
*ev
){QPainter
p(this);p
.drawPixmap(rect(),QPixmap(":/new/prefix1/image/Frame.jpg"));QPen pen
;pen
.setWidth(4);pen
.setColor("black");p
.setPen(pen
);widthC
=width()/10;heightC
=height()/10;startX
=widthC
;startY
=heightC
;for(int i
=0;i
<9;i
++){p
.drawLine(startX
,startY
+i
*heightC
,startX
+8*widthC
,startY
+i
*heightC
);p
.drawLine(startX
+i
*widthC
,startY
,startX
+i
*widthC
,startY
+8*heightC
);}if(checkX
!=-1&&checkY
!=-1){p
.drawPixmap(startX
+checkX
*widthC
,startY
+checkY
*heightC
,widthC
,heightC
,QPixmap(":/new/prefix1/image/LuffyQ.png"));}}
void Widget::mousePressEvent(QMouseEvent
*ev
){if(ev
->button()==Qt
::LeftButton
){int x
=ev
->x();int y
=ev
->y();if(x
>=startX
&&x
<=startX
*9&&y
>=startY
&&y
<=startY
*9){checkX
=(x
-widthC
)/widthC
;checkY
=(y
-heightC
)/heightC
;qDebug()<<QString("(%1,%2)").arg(checkX
).arg(checkY
);}update();}
}Widget::~Widget()
{delete ui
;
}
總結
以上是生活随笔為你收集整理的Qt学习:棋盘游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。