void Dialog::paintEvent(QPaintEvent *e)
{
QPainter pait(this);//这里加了this
pait.drawLine(0,0,100,100);
QPen mypen(Qt::black);
mypen.setWidth(6);
QPoint p1;//像这种就没加
p1.setX(10);
p1.setY(10);
QPoint p2;
p2.setY(100);
/ p2.setX(100);
pait.setPen(mypen);
pait.drawLine(p1,p2);
}
具体都在什么时候加this呢?有的一声明一个他就加了,有的就不加。有没有规律?感觉好迷茫,新手求教。
还有就是类声明的时候,有的用new声明,有的比如这里的QPoint他就不用new,为什么呢?有规律吗?
------解决思路----------------------
没有一个说到 点子上的,这个必须加!!
是因为 QPainter 要知道 在那个 QPaintDevice 上 画图。
你这个 困惑 和 问题 很好,其实,你只要 看看 函数 原型 就好了,可加可 不加的 都有会 默认参数 = 0 之类的。
这个 QPainter 没有, 只有 两个 构造函数
QPainter()
QPainter(QPaintDevice * device)
使用 第一个的时候 在画图前 必须调用 begin(QPaintDevice * device)
那些 可有可无的 构造函数一般都是这样
QObject::QObject(QObject * parent = 0)
QWidget::QWidget(QWidget * parent = 0, Qt::WindowFlags f = 0)