首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于QT的一个基础的对象销毁的有关问题

2013-07-04 
关于QT的一个基础的对象销毁的问题!DragWidget::DragWidget(QWidget *parent): QFrame(parent){setMinimum

关于QT的一个基础的对象销毁的问题!

DragWidget::DragWidget(QWidget *parent)
    : QFrame(parent)
{
    setMinimumSize(200, 200);
    setFrameStyle(QFrame::Sunken | QFrame::StyledPanel);
    setAcceptDrops(true);

    QLabel *boatIcon = new QLabel(this);
    boatIcon->setPixmap(QPixmap(":/images/boat.png"));
    boatIcon->move(10, 10);
    boatIcon->show();
    boatIcon->setAttribute(Qt::WA_DeleteOnClose);

    QLabel *carIcon = new QLabel(this);
    carIcon->setPixmap(QPixmap(":/images/car.png"));
    carIcon->move(100, 10);
    carIcon->show();
    carIcon->setAttribute(Qt::WA_DeleteOnClose);

    QLabel *houseIcon = new QLabel(this);
    houseIcon->setPixmap(QPixmap(":/images/house.png"));
    houseIcon->move(10, 80);
    houseIcon->show();
    houseIcon->setAttribute(Qt::WA_DeleteOnClose);
}

上面这段代码是QT Example里面的一段代码, 像上面这里面QLabel在这段代码结束的时候,应该是已经被销毁了的吧! 为什么show()出来的图片还在?
而且QLabel *child = static_cast<QLabel*>(childAt(event->pos()));这行代码也可以得到已经销毁的QLable对象,这是为什么? Qt
[解决办法]
DragWidget析构了,他们才会销毁
[解决办法]
这里用的是指针
[解决办法]
引用:
Quote: 引用:

DragWidget析构了,他们才会销毁

局部变量不是函数结束时候销毁?

这是指针
[解决办法]
代码里用的是指针,函数结束指针变量被销毁,new出来的控件还在堆里,
delete一个QObject的子类,要调用xxxx->deleteLater();

热点排行