当前位置: 代码迷 >> QT开发 >> this指针的一个小疑点,求大神解答下,多谢
  详细解决方案

this指针的一个小疑点,求大神解答下,多谢

热度:232   发布时间:2016-04-25 02:53:46.0
this指针的一个小问题,求大神解答下,谢谢。
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)
  相关解决方案