觉得用C++写中国象棋很有趣 ,所以……
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include
#include// 按钮类
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
// 在QTcreator中,类中斜体字表示虚函数
virtual void paintEvent(QPaintEvent *);
// mouse press event
virtual void mousePressEvent(QMouseEvent *);
// 按钮
QPushButton* _button;
QPoint _ptClick;
signals:
public slots:
};
#endif // MYWIDGET_H
#include//基本Qt库
#include//界面窗口库
#include "MyWidget.h" //自定义库
int main(int argc, char* argv[])
{
// QApplication抽象了QT的应用程序
QApplication app(argc, argv);
// QWidget抽象了窗口
// QWidget w;
MyWidget w;
w.show();
// 进入消息循环,等待用户输入
return app.exec();
}
#include "MyWidget.h"
#include//绘制头文件
#include//鼠标事件头文件
MyWidget::MyWidget(QWidget *parent) : // 继承函数
QWidget(parent)
{
_button = new QPushButton("This is button", this); //定义按钮
}
void MyWidget::paintEvent(QPaintEvent *)
{
// QPainter 绘制类
// 绘制打印机、绘制图画、拷屏。。。
QPainter painter(this);
#if 0
painter.setPen(QColor(255, 0, 0)); //设置绘制画笔的颜色
painter.setBrush(QBrush(QColor(255, 255, 0)));
painter.drawLine(QPoint(0, 0), QPoint(100, 100)); //划线
painter.drawText(200, 200, "HelloQT"); //写文字
painter.drawEllipse(QPoint(200, 300), 50, 50); //画椭圆
#endif
painter.drawEllipse(_ptClick, 30, 30);
}
void MyWidget::mousePressEvent(QMouseEvent *ev)
{
// 得到鼠标点击的地方
_ptClick = ev->pos();
// 强制程序重新绘制界面
update();
// QPainter p(this);
// p.drawEllipse(pt, 30, 30);
}
对c++的各种知识已经忘的差不多了 ,所以滚回去再学习了