Russian Qt Forum
Октябрь 01, 2024, 10:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Утечка памяти в QWizard  (Прочитано 1319 раз)
WereWind
Гость
« : Февраль 24, 2014, 10:12 »

Всем привет. Я сейчас пишу мастер, который на одном из этапов работы должен запусать другую программу и закрывать сам.Пнрограмма вроде работает нормально, однако если я прогоняю ее через Valgrind, тот говорит,  что возможна утечка памяти и вываливает мне в консоль отчет на 2к строк. Форумы настоятельно рекомендуют относиться к возможным утечкам памяти как к полноценным.
Вот код сильно упрощенной программы:

mainwizard.cpp
Код:
MainWizard::MainWizard(QWidget *parent) :
    QWizard(parent),
    ui(new Ui::MainWizard)
{
    ui->setupUi(this);
    setWizardStyle(QWizard::ClassicStyle);
    //Вот на эту строку ругается валгринд
    setPage(0,  new WizardPage());
}

MainWizard::~MainWizard()
{
    qDebug() << "end";
    delete ui;
}

void MainWizard::TerminateWizard()
{
    QString program = "../GrafonTest/GrafonTest";
    QStringList arguments;

    QProcess::startDetached(program, arguments);
    done(0);
}

wizardpage.cpp
Код:
WizardPage::WizardPage(QWidget *parent) :
    QWizardPage(parent),
    ui(new Ui::WizardPage)
{
    ui->setupUi(this);

    connect(ui->pushButton, SIGNAL(pressed()), this, SLOT(FinishWizard()));
}

WizardPage::~WizardPage()
{
    delete ui;
}

void WizardPage::initializePage()
{
    MainWizard *pWizard = (MainWizard*)wizard();
    connect(this, SIGNAL(timeToEndWizard()), pWizard, SLOT(TerminateWizard()));
}


void WizardPage::FinishWizard()
{
    emit timeToEndWizard();
}

main.cpp
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWizard w;
    w.show();

    return a.exec();
}

Валгринд ругается только есть я сначала добавляю к визарду страницу через setpage и потом вызываю QProcess. Если хотя бы одна из этих функций не вызывается, ошибок нет.
Это ложное срабатывание такое или я что-то делаю не так?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 20.