Top.Mail.Ru
Уведомления
Очистить все

[Решено] Падает простейшее приложение на Qt при использовании QSharedPointer и QLabel

(@ronda)
New member

Добрый день,

обнаружил странное поведение при работе минимального приложения: при закрытии приложение завершается с кодом ошибки (не с кодом 0 как должно быть в случае успешного завершения). Добавил в стандартный класс MainWindow

mainwindow.h:

QSharedPointer<QLabel> label;

В конструкторе в mainwindow.cpp:

label = QSharedPointer<QLabel>(new QLabel(this));
ui->mainLayout->addWidget(label.data());

Методом проб и ошибок выяснил, что проблема точно появляется при использовании label, если убрать, то проблема пропадает.

Буду благодарен любым советам )


Цитата
Создатель темы Размещено : 25.04.2025 12:41
Aveal
(@aveal)
Top level Admin

Приветствую, здесь объект удаляется дважды, в этом проблема. Один раз label удаляет QSharedPointer, а второй раз MainWindow, так как он указан в качестве родителя при создании QLabel. Как вариант, надо изменить:

label = QSharedPointer<QLabel>(new QLabel(this));

на

label = QSharedPointer<QLabel>(new QLabel());

ОтветитьЦитата
Размещено : 26.04.2025 12:34
Поделиться:
Обзор конфиденциальности

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.