我有以下情况:
InspectionTreeWidget标题:
class InspectionTreeWidget : public QTreeWidget
{
Q_OBJECT
public:
explicit InspectionTreeWidget(QWidget *parent = 0);
private:
QVBoxLayout *layout_sourcesettings;
QFrame *frame_sourcesettings;
...
InspectionTreeWidget实施:
InspectionTreeWidget::InspectionTreeWidget(QWidget *parent) :
QTreeWidget(parent)
{
QVBoxLayout *layout_sourcesettings;
layout_sourcesettings= new QVBoxLayout();
frame_sourcesettings=new QFrame(this);
frame_sourcesettings->setLayout(layout_sourcesettings);
...
}
一切正常但是当我关闭应用程序时,我收到错误"正常阻止后检测到堆损坏"
我做错了什么?
由于
修改(已解决):
我不知道它是否是一个bug,但由于构建过程中的顺序,问题正在发生:
首先我有这个代码:
InspectionTreeWidget::InspectionTreeWidget(QWidget *parent) :
QTreeWidget(parent)
{
QVBoxLayout* layout_sourcesettings= new QVBoxLayout();
frame_sourcesettings=new QFrame(this);
frame_sourcesettings->setLayout(layout_sourcesettings);
...
}
我做了重建,而且每个人都没事。
然后我将layout_sourcesettings的声明移动到标题并且我构建项目并没有编译错误但是当我关闭应用程序时我得到了堆损坏。但是在重建之后,我不再得到堆损坏......
所以现在我的问题是:这是一个与Qt相关的错误,或者每当我将本地声明移动到头文件时,我必须进行重建吗? 感谢