Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Все обьекты новые - это строго?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Гость
Есть виджет и QPalette (просто в одной программе, никак не связаны) Виджет использую всю программу, палетку использую в setPalette( const QPalette & ) . setPalette в принципе может быть скопирована в виджет виде ссылки или может быть скопировано ее значение. Ассистант ясности не вносит. Вдруг она содержит хендлы виндусовые и дублирование не желательно. Не ясно нужно ли держать ее дальше или можно разрушить. Решил обьявить статик. Но имею сомнения, если подклется к какомуто обьеку то может деструктироватся 2 раза - первый раз от владельца, второй раз как статический обьект.

Отладчик выдает сообщение при завершении Free Heap block 3da8b8 modified at 3da940 after it was freed если виджет сделать новым сообщение пропадает.

А апликэцию во всех примерах создают в стеке
Litkevich Yuriy
Цитата(Гость_Гость_* @ 16.5.2009, 3:04) *
сделать новым
что значит новым?

Цитата(Гость_Гость_* @ 16.5.2009, 3:04) *
А апликэцию во всех примерах создают в стеке
говори на русском языке, многи вопросы сами посебе отпадут.

Цитата
You can copy a palette using the copy constructor and test to see if two palettes are identical using isCopyOf().
QPalette is optimized by the use of implicit sharing, so it is very efficient to pass QPalette objects as arguments.
Гость
ЗЫ поглядел QPalette обьектом не является, но вопрос остается и адреса 3da940 какието странные, на куче не такие
ViGOur
Цитата(Гость_Гость_* @ 16.5.2009, 0:04) *
Ассистант ясности не вносит. Вдруг она содержит хендлы виндусовые и дублирование не желательно.
В этом можешь быть уверен, если код работает только под вынь или иксами это оговаривается в асистенте. Если нет, то используй смело. Честно говоря ни разу не попадал...
Цитата(Гость_Гость_* @ 16.5.2009, 0:04) *
Решил обьявить статик. Но имею сомнения, если подклется к какомуто обьеку то может деструктироватся 2 раза - первый раз от владельца, второй раз как статический обьект.
А это совсем не понял, что ты имеешь ввиду. Может пятница потому и не понял? :)

з.ы. и правда, постарайся по возможности грамотно писать, а то глаз режет и замодерировать хочется. ;)
Гость
Цитата(Litkevich Yuriy @ 15.5.2009, 23:19) *
что значит новым?

в куче
Цитата(Litkevich Yuriy @ 15.5.2009, 23:19) *
А апликэцию во всех примерах создают в стеке
говори на русском языке, многи вопросы сами посебе отпадут.

 int main(int argc, char **argv)
{  QApplication app(argc, argv, useGUI);
     return app.exec();
}



Цитата(Litkevich Yuriy @ 15.5.2009, 23:19) *
You can copy a palette using the copy constructor and test to see if two palettes are identical using isCopyOf().
QPalette is optimized by the use of implicit sharing, so it is very efficient to pass QPalette objects as arguments.

Значит нужно хранить? QWidget ее не копирует?
Гость
Цитата(ViGOur @ 15.5.2009, 23:24) *
Решил обьявить статик.

Обьявил как статический обьект в теле функции
Litkevich Yuriy
Цитата(Гость_Гость_* @ 16.5.2009, 3:28) *
Значит нужно хранить? QWidget ее не копирует?
вообще я как-то не задумывался над этим вопросом, может быть по тому, что я получаю плитру виджета
myWidget->palette();
корректирую её как мне надо и устанавливаю назад.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.