crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Все обьекты новые - это строго?
Гость_Гость_*
сообщение 15.5.2009, 23:04
Сообщение #1





Гости








    


Есть виджет и QPalette (просто в одной программе, никак не связаны) Виджет использую всю программу, палетку использую в setPalette( const QPalette & ) . setPalette в принципе может быть скопирована в виджет виде ссылки или может быть скопировано ее значение. Ассистант ясности не вносит. Вдруг она содержит хендлы виндусовые и дублирование не желательно. Не ясно нужно ли держать ее дальше или можно разрушить. Решил обьявить статик. Но имею сомнения, если подклется к какомуто обьеку то может деструктироватся 2 раза - первый раз от владельца, второй раз как статический обьект.

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

А апликэцию во всех примерах создают в стеке
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.5.2009, 23:19
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Гость_* @ 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.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.5.2009, 23:19
Сообщение #3





Гости








    


ЗЫ поглядел QPalette обьектом не является, но вопрос остается и адреса 3da940 какието странные, на куче не такие
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 15.5.2009, 23:24
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3291
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(Гость_Гость_* @ 16.5.2009, 0:04) *
Ассистант ясности не вносит. Вдруг она содержит хендлы виндусовые и дублирование не желательно.
В этом можешь быть уверен, если код работает только под вынь или иксами это оговаривается в асистенте. Если нет, то используй смело. Честно говоря ни разу не попадал...
Цитата(Гость_Гость_* @ 16.5.2009, 0:04) *
Решил обьявить статик. Но имею сомнения, если подклется к какомуто обьеку то может деструктироватся 2 раза - первый раз от владельца, второй раз как статический обьект.
А это совсем не понял, что ты имеешь ввиду. Может пятница потому и не понял? :)

з.ы. и правда, постарайся по возможности грамотно писать, а то глаз режет и замодерировать хочется. ;)

Сообщение отредактировал ViGOur - 15.5.2009, 23:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.5.2009, 23:28
Сообщение #5





Гости








    


Цитата(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 ее не копирует?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 15.5.2009, 23:30
Сообщение #6





Гости








    


Цитата(ViGOur @ 15.5.2009, 23:24) *
Решил обьявить статик.

Обьявил как статический обьект в теле функции
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.5.2009, 0:29
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Гость_* @ 16.5.2009, 3:28) *
Значит нужно хранить? QWidget ее не копирует?
вообще я как-то не задумывался над этим вопросом, может быть по тому, что я получаю плитру виджета
myWidget->palette();
корректирую её как мне надо и устанавливаю назад.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.4.2020, 7:50