C++ 与Qt开发人机象棋(第一部分)

MyWidget.h             //Hearders  
#include <QWidget>
#include "MyWidget.h"
#include <QPushbutton>


namespace{
class MyWidget:
}

class MyWidget:public QWidget
{
 Q_OBJECT

public:
  explict MyWidget(QWidget *parent=0);
  
  //在QTcreator中,类倾斜表示为虚函数
 virtual void paintEvent(QPaintEvent*);
  //Mmouse press event鼠标点击操作
 virtual void mousePressEvent(QMouseEvent*);
  
  //定义一个按钮对象
 QPushButton*_button;
  //定义一个点击事件
 QPoint _ptClick;

private:
    Ui::MyWidget *ui;
};

#endif // MYWIDGET_H

以上是在头文件.h里 先定义好要用到的事件,和对象。

接下来是 MyWidget.cpp

MyWidget.cpp    //Sources

#include "MyWidget.h"
#include <QPainter>        //为了能绘制,使用到这个类来绘制
#include <QMouseEvent>     //为了能点击时用到,所以这个类可以分配给ev形参

MyWidget::MyWidget(QWidget *parent):
   QWidget(parent),
   ui(new Ui::MyWidget)
{
   ui->setup(this);
 _button=new QPushButton("按一下",this);//注意这里的this,是指这里的MyWidget ,否则button会独立

}
MyWidget::~MyWidget()   //这个ui现在其实也没什么用,后期可能会用到,就加进来了。(比如美化界面)
{
delete ui;
}
void MyWidget::paintEvent(QPaintEvent*)
{
  setWindowsTitle("perdonar quenopodiáceo qué"); //设置窗体名称(西班牙语“原谅管子我”)
 QPaint painter(this);
 painter.darwEllipse(_ptClick,30,30,);//这是一个绘制-》鼠标点击的地方-》30*30大小
 painter.setBruh(QBrush(QColor(0,0,255)));//暂时假设他是一个透明看不见的绿色帽子。
}
void MyWidget::mousePressEvent(QMouseEvent *ev) //把ev作为形参可以传递数值
{
  _ptClick=ev->pos();  //得到鼠标点击的地方
  update();            //用来强制重新绘制界面
}

编译后,会得到这样的一个界面,现在可以在界面上 任意点击,都会有一个 30*30的圆圈啦。

 

重点有:

1.函数的定义和形参的带入与回传

2.析构函数与构造函数不可混淆写错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值