目录

1.游戏效果展示

2.游戏介绍

3.游戏核心思路

3.1游戏理念

3.2游戏思路

4.游戏核心模块实现

4.1设置背景和卡片图片

4.2画卡片

4.2.1画第一层图片

4.2.2画第二层图片

4.3鼠标事件

4.3.1鼠标事件重写

4.3.2判断点击是哪个图片

4.4卡槽区功能

4.4.1卡槽区贴图模块

4.4.2页面跳转

4.4.3判断三消和结束判断

5 全部代码

第一关

.h

第二关 与第一关同理

.cpp

.h


1.游戏效果展示

基本和游戏差不多如果用的图对的话

2.游戏介绍

该游戏是基于c++和QT实现的一款仿照网络爆火的羊了个羊的游戏,但是目前本人也是初学者所有只写出来基础款羊了羊,关卡是固定的而且卡片分配是有一定规律的,后期我也会努力学习改进算法让游戏可以更加逼真。所有如果你喜欢这款羊了个羊,我会一步一步教你如何实现这款羊了个羊游戏的,也请大佬多多指教。

3.游戏核心思路

3.1游戏理念

因为QT设计可以直接进行贴图,所有设计羊了个羊算法和思维并不难但是却是比较繁,但是却可以锻炼自己的鼠标事件和贴图的能力,可以让初学者更加深刻的理解QT开发贴图游戏的思路。

3.2游戏思路

羊了个羊,本质就是一个贴图游戏,只要搞清楚每张图每次在哪里,那么这个问题就解决啦,对于第一关只需要3*6张图,那么我们完全可以用一个二维数组来维护这些图片,开一个a[3][3]={1}让这个二维数组里所有的数值设成为1,让1代表这些图片在卡片区,而当我们点击一次鼠标让该区域最上面那张图片对应的二维数组的值改变为0,让0代表这张卡片在卡槽区,然后遍历卡槽区里的卡片是否有满足三消条件,如果达到三消就将这三张照片所对应的二维数组对应的值改变为2,让2代表这张卡片在垃圾桶。最后判断获胜遍历使用图片对应的二维数组是否都为2图片全在垃圾桶。第二关和第一关思路一模一样,只不过加大了难度。

4.游戏核心模块实现

以下代码只有部分作为讲解 完整代码在最下面

4.1设置背景和卡片图片

做羊了个羊最重要的是你需要在纸上画出你的游戏大小和规划好每个图片所在的位置,然后在ui界面里固定好界面的大小和确定好每个图片所在的位置。

通过画家来画我们界面和游戏,该游戏所有的画图都在画图函数中执行。首先导入所有需要的图片资源,然后用一个画家指针来帮我们画画,后期也是在这个函数里进行的。

void yanglgyang::paintEvent(QPaintEvent *)
{QString picture =  {":/new/prefix1/photo/01.jpg"};//界面绿草背景QString picture2 = {":/new/prefix1/photo/02.jpg"};//界面那个卡片槽的槽图片QString picture3 = {":/new/prefix1/photo/03.jpg"};//卡片1QString picture4 = {":/new/prefix1/photo/04.jpg"};//卡片2QString picture5 = {":/new/prefix1/photo/05.jpg"};//卡片3QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture);pixmap.scaled(this->width(),this->height());painter->drawPixmap(0,0,this->width(),this->height(),pixmap);//画背景pixmap.load(picture2);pixmap.scaled(600,100);painter->drawPixmap(40,680,600,100,pixmap);//画卡片槽painter->end();
}

4.2画卡片

4.2.1画第一层图片

用一个判断语句如果这个二维数组为0说明这个地方有这张图片 部分判断代码 ,而且二维数组的第一维表示第几种卡片,第二维表示第几张图片,用这样的方法把每张图片分开。然后通过自己想让图片在那块,就在在那个坐标位置进行绘制。

if(jishu[0][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(160,160,80,80,pixmap);painter->end();}if(jishu[0][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(290,310,80,80,pixmap);painter->end();}

4.2.2画第二层图片

在第一次图片的基础上纵坐标加10,然后绘制,让第二次绘制的图片将第一层图片覆盖达到游戏里的覆盖的效果。

if(jishu[0][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(430,170,80,80,pixmap);painter->end();}if(jishu[0][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(160,470,80,80,pixmap);painter->end();}

4.3鼠标事件

4.3.1鼠标事件重写

void yanglgyang::mousePressEvent(QMouseEvent *ev)
{int x = ev->x();int y = ev->y();
}

4.3.2判断点击是哪个图片

需要判断点击是那个图片需要解决两个问题,第一个鼠标点击是那个地方且这个地方有卡片,第二个点击这个地方的图片上面有没有压它的卡片,需要解决这个问题就需要,用到坐标处理每个卡片所在的区域做一个范围,如果鼠标事件传来这个范围的坐标就说明玩家点击了这个卡片,但是我们还需要确认这个卡片上面没有压它的图片,如果有压它的图片那么就吧压它的卡片先从卡片区移除,然后再次点击这个范围,才能移除它。但是我们还需要确定这个范围有卡片,不然当这个范围的卡片全部被消除,在按还是会进行判断导致BUG。

void yanglgyang::mousePressEvent(QMouseEvent *ev)
{int x = ev->x();int y = ev->y();if(x>150&&x<150+80&&y>160&&y<160+80&&jishu[0][0]==1){if(jishu[1][3]==1)jishu[1][3]=0;else jishu[0][0]=0;}else if(x>290&&x<290+80&&y>160&&y<160+80&&jishu[1][0]==1){if(jishu[2][3]==1)//判断是否最压它的卡片jishu[2][3]=0;else jishu[1][0]=0;}}

4.4卡槽区功能

4.4.1卡槽区贴图模块

羊了个羊卡槽区的卡片每次都会更新将相同的放在一起,所有我们也需要将相同的图片放在一起,所有我们没有卡槽区贴图,可以依次遍历二维数组,而二维数组第一维表示图片种类,所有遍历一遍,遍历过程依次贴图完全可以让相同的图片相邻。

4.4.2页面跳转

加需要跳转到页面的头文件

#include"dierguan.h"
在.h文件里声明指针

dierguan *dir;
在cpp文件里给指针一个空间 然后指向show()

dir = new dierguan;

dir->show();

4.4.3判断三消和结束判断

首先还是遍历二维数组然后判断没一类卡片是否有三张卡片为0,如果是将三张卡片变为2

     int i=0;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=1;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=2;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}int x11=80;int y11=690;b=0;for(int i=0;i<3;i++)for(int j=0;j<6;j++){if(jishu[i][j]==0){if(i==0){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==2){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}}}if(b==7){QMessageBox::information(this,"玩家","胜败乃兵家常事\n大侠请重新来过");this->close();}int sss=0;for(int i=0;i<3;i++)for(int j=0;j<6;j++){if(jishu[i][j]==2){sss++;}}if(sss==18){//QMessageBox::information(this,"玩家","胜");this->close();// sco = new scound;//   sco->show();dir = new dierguan;dir->show();}}

5 全部代码

第一关

.cpp

#include "yanglgyang.h"
#include "ui_yanglgyang.h"yanglgyang::yanglgyang(QWidget *parent) :QWidget(parent),ui(new Ui::yanglgyang)
{ui->setupUi(this);this->setWindowTitle("羊了个羊");
}yanglgyang::~yanglgyang()
{delete ui;
}void yanglgyang::paintEvent(QPaintEvent *)
{QString picture =  {":/new/prefix1/photo/01.jpg"};QString picture2 = {":/new/prefix1/photo/02.jpg"};QString picture3 = {":/new/prefix1/photo/03.jpg"};QString picture4 = {":/new/prefix1/photo/04.jpg"};QString picture5 = {":/new/prefix1/photo/05.jpg"};QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture);pixmap.scaled(this->width(),this->height());painter->drawPixmap(0,0,this->width(),this->height(),pixmap);pixmap.load(picture2);pixmap.scaled(600,100);painter->drawPixmap(40,680,600,100,pixmap);painter->end();if(jishu[0][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(160,160,80,80,pixmap);painter->end();}if(jishu[0][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(290,310,80,80,pixmap);painter->end();}if(jishu[0][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(430,460,80,80,pixmap);painter->end();}if(jishu[1][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(290,160,80,80,pixmap);painter->end();}if(jishu[1][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(160,310,80,80,pixmap);painter->end();}if(jishu[1][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(430,310,80,80,pixmap);painter->end();}if(jishu[2][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(430,160,80,80,pixmap);painter->end();}if(jishu[2][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(160,460,80,80,pixmap);painter->end();}if(jishu[2][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(290,460,80,80,pixmap);painter->end();}if(jishu[1][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(160,170,80,80,pixmap);painter->end();}if(jishu[1][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(290,320,80,80,pixmap);painter->end();}if(jishu[1][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(430,470,80,80,pixmap);painter->end();}if(jishu[2][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(290,170,80,80,pixmap);painter->end();}if(jishu[2][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(160,320,80,80,pixmap);painter->end();}if(jishu[2][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(430,320,80,80,pixmap);painter->end();}if(jishu[0][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(430,170,80,80,pixmap);painter->end();}if(jishu[0][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(160,470,80,80,pixmap);painter->end();}if(jishu[0][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(290,470,80,80,pixmap);painter->end();}/* for(int i=0;i<3;i++){for(int j=0;j<6;j++)if(jishu[i][j]==0){qDebug()<<i<<j;}}qDebug()<<"   1    ";*/int i=0;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=1;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=2;a=0;for(int j=0;j<6;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<6;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}int x11=80;int y11=690;b=0;for(int i=0;i<3;i++)for(int j=0;j<6;j++){if(jishu[i][j]==0){if(i==0){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==2){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}}}if(b==7){QMessageBox::information(this,"玩家","胜败乃兵家常事\n大侠请重新来过");this->close();}int sss=0;for(int i=0;i<3;i++)for(int j=0;j<6;j++){if(jishu[i][j]==2){sss++;}}if(sss==18){//QMessageBox::information(this,"玩家","胜");this->close();// sco = new scound;//   sco->show();dir = new dierguan;dir->show();}}void yanglgyang::mousePressEvent(QMouseEvent *ev)
{int x = ev->x();int y = ev->y();if(x>150&&x<150+80&&y>160&&y<160+80&&jishu[0][0]==1){if(jishu[1][3]==1)jishu[1][3]=0;else jishu[0][0]=0;}else if(x>290&&x<290+80&&y>160&&y<160+80&&jishu[1][0]==1){if(jishu[2][3]==1)jishu[2][3]=0;else jishu[1][0]=0;}else if(x>430&&x<430+80&&y>160&&y<160+80&&jishu[2][0]==1){if(jishu[0][3]==1)jishu[0][3]=0;else jishu[2][0]=0;}else if(x>150&&x<150+80&&y>310&&y<310+80&&jishu[1][1]==1){if(jishu[2][4]==1)jishu[2][4]=0;else jishu[1][1]=0;}else if(x>290&&x<290+80&&y>310&&y<310+80&&jishu[0][1]==1){if(jishu[1][4]==1)jishu[1][4]=0;else jishu[0][1]=0;}else if(x>430&&x<430+80&&y>310&&y<310+80&&jishu[1][2]==1){if(jishu[2][5]==1)jishu[2][5]=0;else jishu[1][2]=0;}else if(x>150&&x<150+80&&y>460&&y<460+80&&jishu[2][1]==1){if(jishu[0][4]==1)jishu[0][4]=0;else jishu[2][1]=0;}else if(x>290&&x<290+80&&y>460&&y<460+80&&jishu[2][2]==1){if(jishu[0][5]==1)jishu[0][5]=0;else jishu[2][2]=0;}else if(x>430&&x<430+80&&y>460&&y<460+80&&jishu[0][2]==1){if(jishu[1][5]==1)jishu[1][5]=0;else jishu[0][2]=0;}update();
}

.h

#ifndef YANGLGYANG_H
#define YANGLGYANG_H#include <QWidget>
#include <QPainter>
#include <QPixmap>
#include <QPaintEvent>
#include <QBrush>
#include <vector>
#include <stack>
#include <QString>
#include <QMouseEvent>
#include<QDebug>
#include<QMessageBox>
#include <QSound>
#include"dierguan.h"namespace Ui {
class yanglgyang;
}class yanglgyang : public QWidget
{Q_OBJECTpublic:explicit yanglgyang(QWidget *parent = nullptr);int a=0;int b=0;int jishu[3][6]={{1,1,1,1,1,1},{1,1,1,1,1,1},{1,1,1,1,1,1}};~yanglgyang();
private slots:void paintEvent(QPaintEvent*);void mousePressEvent(QMouseEvent*ev);private:Ui::yanglgyang *ui;dierguan *dir;
};#endif // YANGLGYANG_H

第二关 与第一关同理

.cpp

#include "dierguan.h"
#include "ui_dierguan.h"dierguan::dierguan(QWidget *parent) :QWidget(parent),ui(new Ui::dierguan)
{ui->setupUi(this);this->setWindowTitle("羊了个羊");
}dierguan::~dierguan()
{delete ui;
}
void dierguan::paintEvent(QPaintEvent *)
{QString picture = {":/new/prefix1/photo/01.jpg"};QString picture2 = {":/new/prefix1/photo/02.jpg"};QString picture3 = {":/new/prefix1/photo/03.jpg"};QString picture4 = {":/new/prefix1/photo/04.jpg"};QString picture5 = {":/new/prefix1/photo/05.jpg"};QString picture6 = {":/new/prefix1/photo/06.jpg"};QString picture7 = {":/new/prefix1/photo/07.jpg"};QString picture8 = {":/new/prefix1/photo/08.jpg"};QString picture9 = {":/new/prefix1/photo/09.jpg"};QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture);pixmap.scaled(this->width(),this->height());painter->drawPixmap(0,0,this->width(),this->height(),pixmap);pixmap.load(picture2);pixmap.scaled(600,100);painter->drawPixmap(40,750,600,100,pixmap);painter->end();
//第一层———————————————————————————————————————————————————————————————————————————————————————————if(jishu[0][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(180,100,80,80,pixmap);painter->end();}if(jishu[1][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(260,100,80,80,pixmap);painter->end();}if(jishu[2][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(340,100,80,80,pixmap);painter->end();}if(jishu[3][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(420,100,80,80,pixmap);painter->end();}if(jishu[4][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(180,180,80,80,pixmap);painter->end();}if(jishu[5][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(260,180,80,80,pixmap);painter->end();}if(jishu[6][0]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(340,180,80,80,pixmap);painter->end();}if(jishu[0][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(420,180,80,80,pixmap);painter->end();}if(jishu[1][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(180,260,80,80,pixmap);painter->end();}if(jishu[2][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(260,260,80,80,pixmap);painter->end();}if(jishu[3][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(340,260,80,80,pixmap);painter->end();}if(jishu[4][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(420,260,80,80,pixmap);painter->end();}if(jishu[5][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(180,340,80,80,pixmap);painter->end();}if(jishu[6][1]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(260,340,80,80,pixmap);painter->end();}if(jishu[0][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(340,340,80,80,pixmap);painter->end();}if(jishu[1][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(420,340,80,80,pixmap);painter->end();}//第五行if(jishu[2][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(180,420,80,80,pixmap);painter->end();}if(jishu[3][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(260,420,80,80,pixmap);painter->end();}if(jishu[4][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(340,420,80,80,pixmap);painter->end();}if(jishu[5][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(420,420,80,80,pixmap);painter->end();}if(jishu[6][2]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(180,500,80,80,pixmap);painter->end();}if(jishu[0][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(260,500,80,80,pixmap);painter->end();}if(jishu[1][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(340,500,80,80,pixmap);painter->end();}if(jishu[2][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(420,500,80,80,pixmap);painter->end();}if(jishu[3][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(180,580,80,80,pixmap);painter->end();}if(jishu[4][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(260,580,80,80,pixmap);painter->end();}if(jishu[5][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(340,580,80,80,pixmap);painter->end();}if(jishu[6][3]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(420,580,80,80,pixmap);painter->end();}if(jishu[0][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(180,660,80,80,pixmap);painter->end();}if(jishu[1][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(260,660,80,80,pixmap);painter->end();}if(jishu[2][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(340,660,80,80,pixmap);painter->end();}if(jishu[3][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(420,660,80,80,pixmap);painter->end();}
//第二层——————————————————————————————————————————————————————————————————————————————————if(jishu[4][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(220,130,80,80,pixmap);painter->end();}if(jishu[5][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(220,135,80,80,pixmap);painter->end();}if(jishu[6][4]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(220,140,80,80,pixmap);painter->end();}if(jishu[0][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(300,130,80,80,pixmap);painter->end();}if(jishu[1][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(300,135,80,80,pixmap);painter->end();}if(jishu[2][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(300,140,80,80,pixmap);painter->end();}if(jishu[3][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(380,130,80,80,pixmap);painter->end();}if(jishu[4][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(380,135,80,80,pixmap);painter->end();}if(jishu[5][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(380,140,80,80,pixmap);painter->end();}if(jishu[6][5]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(220,220,80,80,pixmap);painter->end();}if(jishu[0][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(220,225,80,80,pixmap);painter->end();}if(jishu[1][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(220,230,80,80,pixmap);painter->end();}if(jishu[2][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(300,220,80,80,pixmap);painter->end();}if(jishu[3][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(300,225,80,80,pixmap);painter->end();}if(jishu[4][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(300,230,80,80,pixmap);painter->end();}if(jishu[5][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(380,220,80,80,pixmap);painter->end();}if(jishu[6][6]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(380,225,80,80,pixmap);painter->end();}if(jishu[0][7]==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(380,230,80,80,pixmap);painter->end();}if(jishu[1][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(220,460,80,80,pixmap);painter->end();}if(jishu[2][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(220,470,80,80,pixmap);painter->end();}if(jishu[3][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(380,460,80,80,pixmap);painter->end();}if(jishu[4][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(380,470,80,80,pixmap);painter->end();}if(jishu[5][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(220,620,80,80,pixmap);painter->end();}if(jishu[6][7]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(220,630,80,80,pixmap);painter->end();}if(jishu[0][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(220,640,80,80,pixmap);painter->end();}if(jishu[1][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(380,620,80,80,pixmap);painter->end();}if(jishu[2][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(380,630,80,80,pixmap);painter->end();}if(jishu[3][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(380,640,80,80,pixmap);painter->end();}if(jishu[4][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(100,300,80,80,pixmap);painter->end();}if(jishu[5][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(100,310,80,80,pixmap);painter->end();}if(jishu[6][8]){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(100,320,80,80,pixmap);painter->end();}//画槽里的图形————————————————————————————————————————————————————————————————————————int i=0;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=1;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=2;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=3;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=4;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=5;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}i=6;a=0;for(int j=0;j<9;j++){if(jishu[i][j]==0){a++;}}if(a==3){for(int k=0;k<9;k++){if(jishu[i][k]==0){jishu[i][k]=2;//2为垃圾桶}//加一个音效}}int x11=80;int y11=750;b=0;for(int i=0;i<8;i++)for(int j=0;j<9;j++){if(jishu[i][j]==0){if(i==0){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture3);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==1){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture4);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==2){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture5);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==3){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture6);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==4){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture7);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==5){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture8);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}else if(i==6){QPainter*painter = new QPainter(this);QPixmap pixmap;pixmap.load(picture9);pixmap.scaled(80,80);painter->drawPixmap(x11,y11,80,80,pixmap);painter->end();x11=x11+80;b++;}}}if(b==7)
{QMessageBox::information(this,"玩家","胜败乃兵家常事\n大侠请重新来过");this->close();
}
int sss=0;
for(int i=0;i<7;i++)for(int j=0;j<9;j++){if(jishu[i][j]==2){sss++;}}
if(sss==63)
{QMessageBox::information(this,"玩家","胜");this->close();}}void dierguan::mousePressEvent(QMouseEvent *ev)
{int x = ev->x();int y = ev->y();if(x>180&&x<180+80&&y>100&&y<100+80&&jishu[0][0]==1){if(jishu[4][4]==0)jishu[0][0]=0;}else if(x>220&&x<300&&y>140&&y<220&&jishu[4][4]==1){if(jishu[5][4]!=1){jishu[4][4]=0;}else if(jishu[6][4]!=1){jishu[5][4]=0;}else jishu[6][4]=0;}else  if(x>260&&x<340&&y>100&&y<180&&jishu[1][0]==1){if(jishu[4][4]==0&&jishu[0][5]==0){jishu[1][0]=0;}}else if(x>300&&x<380&&y>140&&y<220&&jishu[0][5]==1){if(jishu[1][5]!=1){jishu[0][5]=0;}else if(jishu[2][5]!=1){jishu[1][5]=0;}else jishu[2][5]=0;}else  if(x>340&&x<420&&y>100&&y<180&&jishu[2][0]==1){if(jishu[0][5]==0&&jishu[3][5]==0){jishu[2][0]=0;}}else  if(x>380&&x<460&&y>140&&y<220&&jishu[3][5]==1){if(jishu[4][5]!=1){jishu[3][5]=0;}else if(jishu[5][5]!=1){jishu[4][5]=0;}else jishu[5][5]=0;}else  if(x>420&&x<500&&y>100&&y<180&&jishu[3][0]==1){if(jishu[3][5]==0){jishu[3][0]=0;}}else  if(x>180&&x<180+80&&y>180&&y<180+80&&jishu[4][0]==1){if(jishu[4][4]==0&&jishu[6][5]==0)jishu[4][0]=0;}else if(x>220&&x<300&&y>220&&y<300&&jishu[6][5]==1){if(jishu[0][6]!=1){jishu[6][5]=0;}else if(jishu[1][6]!=1){jishu[0][6]=0;}else jishu[1][6]=0;}else if(x>260&&x<260+80&&y>180&&y<180+80&&jishu[5][0]==1){if(jishu[4][4]==0&&jishu[6][5]==0&&jishu[0][5]==0&&jishu[2][6]==0)jishu[5][0]=0;}else if(x>300&&x<380&&y>220&&y<300&&jishu[2][6]==1){if(jishu[3][6]!=1){jishu[2][6]=0;}else if(jishu[4][6]!=1){jishu[3][6]=0;}else jishu[4][6]=0;}else  if(x>340&&x<340+80&&y>180&&y<180+80&&jishu[6][0]==1){if(jishu[3][5]==0&&jishu[5][6]==0&&jishu[0][5]==0&&jishu[2][6]==0)jishu[6][0]=0;}else if(x>380&&x<460&&y>220&&y<300&&jishu[5][6]==1){if(jishu[6][6]!=1){jishu[5][6]=0;}else if(jishu[0][7]!=1){jishu[6][6]=0;}else jishu[0][7]=0;}else if(x>420&&x<420+80&&y>180&&y<180+80&&jishu[0][1]==1){if(jishu[3][5]==0&&jishu[5][6]==0)jishu[0][1]=0;}else   if(x>180&&x<180+80&&y>260&&y<260+80&&jishu[1][1]==1){if(jishu[6][5]==0)jishu[1][1]=0;}else  if(x>260&&x<260+80&&y>260&&y<260+80&&jishu[2][1]==1){if(jishu[6][5]==0&&jishu[2][6]==0)jishu[2][1]=0;}else  if(x>340&&x<340+80&&y>260&&y<260+80&&jishu[3][1]==1){if(jishu[5][6]==0&&jishu[2][6]==0)jishu[3][1]=0;}else  if(x>420&&x<420+80&&y>260&&y<260+80&&jishu[4][1]==1){if(jishu[5][6]==0)jishu[4][1]=0;}else   if(x>180&&x<180+80&&y>340&&y<340+80&&jishu[5][1]==1){jishu[5][1]=0;}else  if(x>260&&x<260+80&&y>340&&y<340+80&&jishu[6][1]==1){jishu[6][1]=0;}else  if(x>340&&x<340+80&&y>340&&y<340+80&&jishu[0][2]==1){jishu[0][2]=0;}else  if(x>420&&x<420+80&&y>340&&y<340+80&&jishu[1][2]==1){jishu[1][2]=0;}else if(x>220&&x<300&&y>460&&y<540&&jishu[1][7]==1){if(jishu[2][7]!=1){jishu[1][7]=0;}else jishu[2][7]=0;}else if(x>380&&x<460&&y>460&&y<540&&jishu[3][7]==1){if(jishu[4][7]!=1){jishu[3][7]=0;}else jishu[4][7]=0;}else  if(x>180&&x<180+80&&y>420&&y<420+80&&jishu[2][2]==1){if(jishu[1][7]==0)jishu[2][2]=0;}else  if(x>260&&x<260+80&&y>420&&y<420+80&&jishu[3][2]==1){if(jishu[1][7]==0)jishu[3][2]=0;}else  if(x>340&&x<340+80&&y>420&&y<420+80&&jishu[4][2]==1){if(jishu[3][7]==0)jishu[4][2]=0;}else  if(x>420&&x<420+80&&y>420&&y<420+80&&jishu[5][2]==1){if(jishu[3][7]==0)jishu[5][2]=0;}else  if(x>180&&x<180+80&&y>500&&y<500+80&&jishu[6][2]==1){if(jishu[1][7]==0)jishu[6][2]=0;}else  if(x>260&&x<260+80&&y>500&&y<500+80&&jishu[0][3]==1){if(jishu[1][7]==0)jishu[0][3]=0;}else  if(x>340&&x<340+80&&y>500&&y<500+80&&jishu[1][3]==1){if(jishu[3][7]==0)jishu[1][3]=0;}else  if(x>420&&x<420+80&&y>500&&y<500+80&&jishu[2][3]==1){if(jishu[3][7]==0)jishu[2][3]=0;}else if(x>220&&x<300&&y>620&&y<800&&jishu[5][7]==1){if(jishu[6][7]!=1){jishu[5][7]=0;}else if(jishu[0][8]!=1){jishu[6][7]=0;}else jishu[0][8]=0;}else if(x>380&&x<460&&y>620&&y<810&&jishu[1][8]==1){if(jishu[2][8]!=1){jishu[1][8]=0;}else if(jishu[3][8]!=1){jishu[2][8]=0;}else jishu[3][8]=0;}else  if(x>180&&x<180+80&&y>580&&y<580+80&&jishu[3][3]==1){if(jishu[5][7]==0)jishu[3][3]=0;}else  if(x>260&&x<260+80&&y>580&&y<580+80&&jishu[4][3]==1){if(jishu[5][7]==0)jishu[4][3]=0;}else  if(x>340&&x<340+80&&y>580&&y<580+80&&jishu[5][3]==1){if(jishu[1][8]==0)jishu[5][3]=0;}else  if(x>420&&x<420+80&&y>580&&y<580+80&&jishu[6][3]==1){if(jishu[1][8]==0)jishu[6][3]=0;}else  if(x>180&&x<180+80&&y>660&&y<660+80&&jishu[0][4]==1){if(jishu[5][7]==0)jishu[0][4]=0;}else  if(x>260&&x<260+80&&y>660&&y<660+80&&jishu[1][4]==1){if(jishu[5][7]==0)jishu[1][4]=0;}else  if(x>340&&x<340+80&&y>660&&y<660+80&&jishu[2][4]==1){if(jishu[1][8]==0)jishu[2][4]=0;}else  if(x>420&&x<420+80&&y>660&&y<660+80&&jishu[3][4]==1){if(jishu[1][8]==0)jishu[3][4]=0;}else if(x>100&&x<180&&y>300&&y<380&&jishu[4][8]==1){if(jishu[5][8]!=1){jishu[4][8]=0;}else if(jishu[6][8]!=1){jishu[5][8]=0;}else jishu[6][8]=0;}update();
}

.h

#ifndef DIERGUAN_H
#define DIERGUAN_H#include <QWidget>
#include <QPainter>
#include <QPixmap>
#include <QPaintEvent>
#include <QBrush>
#include <vector>
#include <stack>
#include <QString>
#include <QMouseEvent>
#include<QDebug>
#include<QMessageBox>namespace Ui {
class dierguan;
}class dierguan : public QWidget
{Q_OBJECTpublic:explicit dierguan(QWidget *parent = nullptr);~dierguan();int a=0;int b=0;int jishu[7][9]={{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1}};
private slots:void paintEvent(QPaintEvent*);void mousePressEvent(QMouseEvent*ev);private:Ui::dierguan *ui;
};#endif // DIERGUAN_H

基于C++与QT仿照羊了个羊规则的鸿了个鸿贴图游戏相关推荐

  1. 基于VTK与Qt的体绘制程序

    基于VTK与Qt的体绘制程序 分类: VTK Qt Volume Rendering C&C++ 2013-06-10 09:17 3434人阅读 评论(13) 收藏 举报 目录(?)[+] ...

  2. arm linux qt 输入法,基于ARM9和Qt的中文手写输入法的设计与实现

    摘要: 由于基于ARM9和Qt的嵌入式平台没有手写输入法,而且当前存在的手写体汉字识别核心应用在该平台上存在资源占用大.识别速度慢.开发不便等缺点,因此开发一个基于ARM9和Qt平台的中文手写输入法具 ...

  3. 基于Linux、QT、C++的“别踩白块儿”小游戏

    基于Linux.QT.C++的"别踩白块儿"小游戏 源码链接 一.功能实现 完善的游戏界面.游戏倒计时.得分记录.历史最高分显示 二.功能描述 1.界面为4*4,一行中只有一个黑块 ...

  4. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  5. 基于Pxa270和Qt图形界面技术的人脸识别与密码电子锁的门禁系统

    目 录 第1章 绪论 1 1.1 应用背景 1 1.2 系统描述 1 1.2.1 系统方案 1 1.2.2 系统主要功能描述 2 1.3 性能指标 2 1.4 系统特色 3 1.4.1 充分利用班上资 ...

  6. 基于C++的Qt计算器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.设计计算器界面 二.代码分析 1. 2. 总结 前言 本文是基于C++开发Qt计算器,实现功能有利用鼠标按下数字和 ...

  7. 图像工程课程设计 基于 OpenCV 、 Qt 库实现的图像处理软件 大学编程作业(TUST 天津科技大学 2023年)

    基于 OpenCV . Qt 库实现的图像处理软件 目录 基于 OpenCV . Qt 库实现的图像处理软件 一.项目简介 二.项目要求 三.项目源码 四.交流学习 图像处理工具说明文档 基于 Ope ...

  8. C++基于ffmpeg和QT开发播放器~学习笔记

    C++基于ffmpeg和QT开发播放器 B站网址 https://www.bilibili.com/video/BV1h44y1t7D8?p=2&spm_id_from=pageDriver ...

  9. 基于MuPDF和Qt的PDF阅读器的开发

    基于MuPDF和Qt的PDF阅读器的开发 一.引言 设备上要渲染显示PDF文档,类似Adobe Reader.福昕阅读器等软件.如何去实现?Handling PDF这篇文档讨论介绍了在Qt应用程序中各 ...

最新文章

  1. 自定义注解妙用,一行代码搞定用户操作日志记录,你学会了吗?
  2. python3 串行并列实际应用
  3. bgl 词典_深大版成语词典发布!不学不是深大人!深大快讯
  4. 求斐波那契数列前n项的值
  5. 华硕笔记本节能证书_新标准兼顾性能与续航 笔记本换代哪些型号值得买?
  6. 引用一个网络图片作为样式的致命悲剧
  7. scala不使用new关键字创建对象实例
  8. 超过4g的文件怎么上传到linux,怎么免费上传大于4G的文件到百度云 大于4G的文件不开会员怎么上传到百度云...
  9. Client访问Tomcat简单流程(Struts2)
  10. 力扣1009.十进制整数的反码
  11. 2.C++深入理解 面向对象部分1
  12. 操作系统内存管理-原理
  13. SIMD与NEON概念理解
  14. 解决微信观看视频全屏播放问题
  15. 小米8装magisk
  16. 手记---道可道,非常道
  17. 服务器接显示器卡顿,外接屏幕会出现卡顿、掉帧等问题怎么解决?
  18. html中怎么引用jquery
  19. Verilog中Case语句
  20. 什么是iu组装服务器,华硕迷你IU机架服务器RS100-E4/PI2全新上市

热门文章

  1. 【智能零售】深度剖析:人工智能正在重塑商业,零售业面临“生死时刻”
  2. HDU 2109 JAVA
  3. pip 安装.whl文件
  4. 不耗流量!云电脑用的是自己的网络吗?
  5. 网页直播英文版上线,跨国企业客户用着很酷哇
  6. webform ajax 表格,在webform中使用ajax
  7. wifi udp android,Android开启热点进行UDP通信中的坑
  8. 安卓base64与其他语言base64算法还原出来差异问题???
  9. pgsql sql中获取当前时间_PostgreSQL技巧 如何获取当前日期时间
  10. XMPP常用的协议(一)