Заблокирован
1

Нужно ли самому удалять экземпляр класса, унаследованного от QThread?

16.09.2013, 12:59. Показов 1014. Ответов 3
Метки нет (Все метки)

Привет! Есть класс, унаследованный от QThread с макросом Q_OBJECT, создаю я этот экземпляр при помощи new и что - то мне подсказывает, что в таком случае, т.к. всё это косвенно унаследовано от QObject, должно само удалятся после завершения потока, я прав?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2013, 12:59
Ответы с готовыми решениями:

Нужно вывести информацию из унаследованного класса
Всем доброго времени суток)) Я недавно начала изучать WindowsForm и столкнулась со следующей...

Нужно ли самому удалять память?
Есть record: type TMyRec = packed record FByteArray: array of Byte; end; ...

Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Добрый день. Подскажите пожалуйста. есть несколько классов-файлов в одном пакете. class one...

Нужно ли уничтожать экземпляр класса Vector?
Здравствуйте. В своей программе в функции использую класс vector (и даже vector <vector < >> =)...

3
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
16.09.2013, 13:45 2
Цитата Сообщение от newbie666 Посмотреть сообщение
я прав?
нет...
удалится только лишь объект класса, а сам поток будет замечательно себе жить...
0
Заблокирован
16.09.2013, 14:06  [ТС] 3
хмм, а если я опять же не буду экземпляр удалять при помощи delete, его ж не надо удалять так, тк он от QObject? И просто кину потоку сигнал, в обработчике - слоте которого вызову quit(), То всё будет тип-топ?
0
Эксперт С++
1934 / 1046 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
16.09.2013, 14:24 4
если будет parent установлен, то да.. но если мне память не изменяет, в QThread parent-а передавать не получается... так, что ручками.... как вариант в конструктор передать parent-a, в QThread это парент не устанавливать, дальше в run сделать QEventLoop и сделать соединение сигнала destroyed() parent-a, c объектом eventLoop-а и слотом quit(). Правда сам объект будет висеть в памяти, я думаю нужно будет сделать ещё некий объектно ориентированный суицид, для этого эмитнуть какой нибудь сигнал типа done() или что-нибудь другое придумать, в конце функции run и дальше в объекте где создавался этот поток ждать этого сигнала и в слоте уже удалить объект самого класса, который от QThread-а идет. В общем как-то так...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2013, 14:24

Доступ к функциям унаследованного класса
Не знаю как в двух словах описать проблему поэтому если что, модераторы поправьте название темы. У...

События у унаследованного VCL класса
Здравствуйте. Есть проблемка: Есть класс, унаследованный от TImage. Нужно чтобы, при...

Инициализация класса, унаследованного от QWidget
Доброго времени суток. Пожалуйста объясните темному как сделать следующее. Имеем класс: class...

Запуск методов экземпляра класса, переданного в QThread
Всем привет. Вопрос в следующем. У меня есть поток, в который с помощью moveToThread я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.