MyWidget.h //Hearders
#include <QWidget>
#include "MyWidget.h"
#include <QPushbutton>namespace{
class MyWidget:
}class MyWidget:public QWidget
{Q_OBJECTpublic: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.析构函数与构造函数不可混淆写错