Russian Qt Forum
Ноябрь 26, 2024, 06:31
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Почему нельзя установить у QWidget родителем QObject ?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Почему нельзя установить у QWidget родителем QObject ? (Прочитано 3863 раз)
Владислав
Гость
Почему нельзя установить у QWidget родителем QObject ?
«
:
Май 24, 2013, 00:15 »
Не подскажете чем такое ограничение вызвано в Qt?
мне кажется нелогичным такая особенность.
QWidget * widget = new QWidget
QObject * object = new QObject;
//widget->setParent( object );// ошибка
object->setParent( widget );// вот так - нет ошибки
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #1 :
Май 24, 2013, 01:19 »
потому что QWidget - это визуальный объект, и должен иметь родителем другой визуальный объект.
Записан
Странник
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #2 :
Май 24, 2013, 08:21 »
Цитата: Alex Custov от Май 24, 2013, 01:19
потому что QWidget - это визуальный объект, и должен иметь родителем другой визуальный объект.
или быть сиротой, если это окно верхнего уровня. все более чем логично.
Записан
Владислав
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #3 :
Май 24, 2013, 08:35 »
На мой взгляд такая обособленность QWidget в архитектуре Qt - это не логично потому, что QWidget - наследник QObject .
И "визуальность" объекта не даёт объяснения этой особенности - "визуальность" объекта для разработчика ПО ,в смысле воздействия на ПК, тоже что и обращение к любым другим ресурсам ПК.
«
Последнее редактирование: Май 24, 2013, 08:40 от Владислав
»
Записан
Bepec
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #4 :
Май 24, 2013, 09:07 »
Вы знаете про разделение интерфейса и расчётной части?
Если нет- советую почитать. Тогда поймёте, что разделение UI и расчётов это необходимость.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #5 :
Май 24, 2013, 09:35 »
Цитата: Владислав от Май 24, 2013, 08:35
На мой взгляд такая обособленность QWidget в архитектуре Qt - это не логично потому, что QWidget - наследник QObject .
Помимо этого QWidget является ещё и наследником QPaintDevice.
Записан
Qt 5.11/4.8.7 (X11/Win)
Странник
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #6 :
Май 24, 2013, 09:37 »
Цитата: Владислав от Май 24, 2013, 08:35
На мой взгляд такая обособленность QWidget в архитектуре Qt - это не логично потому, что QWidget - наследник QObject .
И "визуальность" объекта не даёт объяснения этой особенности - "визуальность" объекта для разработчика ПО ,в смысле воздействия на ПК, тоже что и обращение к любым другим ресурсам ПК.
попробуйте внятно мне объяснить, зачем вам делать QObject родителем QWidget, а потом мы вместе посмеемся.
Записан
Владислав
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #7 :
Май 24, 2013, 09:49 »
Хотел для автоматического освобождения ресурсов.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #8 :
Май 24, 2013, 10:03 »
Цитата: Владислав от Май 24, 2013, 09:49
Хотел для автоматического освобождения ресурсов.
Код
C++ (Qt)
connect
(
object
,
SIGNAL
(
destroyed
(
)
)
,
widget
,
SLOT
(
deleteLater
(
)
)
)
;
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #9 :
Май 24, 2013, 11:22 »
Предположим была бы такая иерархия QWidget->QObject-QWidget->,,
Пользователь ресайзит окно, что должно происходить учитывая что звено QObject ничего с UI делать не умеет?
Записан
Владислав
Гость
Re: Почему нельзя установить у QWidget родителем QObject ?
«
Ответ #10 :
Май 24, 2013, 11:40 »
Да, наверое в этом ограничении есть свой смысл. Благодарю всех!
За подсказку с поздним удалением - интересное предложение.
«
Последнее редактирование: Май 24, 2013, 11:43 от Владислав
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...