|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.03.2020, 13:48 | #11 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Если Вы про инициализированные значения, то я отвечу да.
Очень важный момент: ошибка вызывается, если переключиться с widgetpencil на widgetbrush, а потом опять на widgetpencil, т.е. повторно присвоивать graphicdisplay значение, которое когда то было присвоено. |
05.03.2020, 14:28 | #12 | |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
Цитата:
Как попробовать вылечить. Перед заменой виджета доставать его методом centralWidget() (или сразу по указателю widgetpencil, если уверен, что ТАМ точно ОН) и принудительно ставить ему нового родителя (nullptr либо - какой согласно логике нужен). Только потом заменять другой вариант - создавать нужный виджет перед установкой setCentralWidget динамически и забывать про него |
|
05.03.2020, 15:04 | #13 |
Пользователь
Регистрация: 30.01.2020
Сообщений: 54
|
Мне кажется, лучше первый вариант.
Если второй, то с поправками - сделать конструктор копирования и перетащить centralWidget перед setCentralWidget, ну и указателю старому потом "тыц" на вновь созданную копию Последний раз редактировалось Subst; 05.03.2020 в 15:25. |
05.03.2020, 19:17 | #14 | |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Цитата:
Код:
P.S. Вы уже мне очень помогли |
|
05.03.2020, 19:48 | #15 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
не очень понимаю вопрос. Для чего ? Чем не устраивает просто указатель?
в этом случае класс ToolPencil должен являться вроппером, то есть иметь в себе поле для хранения указателя Возможно, пытаешься изобрести std::shared_prt или QSharedPointer . Так они уже изобретены - бери да пользуйся )) |
06.03.2020, 12:33 | #16 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Сейчас расскажу. Есть указатель - graphicDisplay->widgetPencil. Нужно его скопировать, но при этом в другую область памяти, затем изменить центральный виджет из graphicDisplay->widgetPencil к примеру в graphicDisplay->widgetBrush и установить в удалённый graphicDisplay->widgetPencil буфферный объект, что бы сохранить. При вот таком коде:
Код:
Код:
|
06.03.2020, 13:19 | #17 | |
Пользователь
Регистрация: 30.01.2020
Сообщений: 54
|
Цитата:
>> сделать конструктор копирования для ToolPencil. У тебя все для этого есть ToolPencil(const ToolPencil &other) { здесь инициализируешь свои приватные свойства и что-то еще, что нужно в соответсnвии со свойствами и чем-то еще объекта other } |
|
06.03.2020, 13:21 | #18 |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Да это же лучше.
Значит без реализации конструктора копирования не обойтись... Хорошо. Сделаем. Спасибо за подсказку Извините, не обратил внимание раньше |
06.03.2020, 13:28 | #19 |
Пользователь
Регистрация: 30.01.2020
Сообщений: 54
|
Так ты по сути постоянно его используешь
что ты делаешь, например в такой ситуации.. int a=5 int b=a; a=7; a=8; a=b; чему a в результате будет равно? идем в ООП и Qt QString a("klop") - конструктор инициализации от *char QString b(a); - конструктор копирования a="subst"; - перегруженный operator = a=b; - непосредственно operator = |
06.03.2020, 13:32 | #20 | |
Форумчанин
Регистрация: 12.06.2018
Сообщений: 831
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пустое окно | Tofock | Общие вопросы C/C++ | 3 | 07.04.2018 21:59 |
В delphi7 возникает такая ошибка при запуске: | Illusiony | Общие вопросы Delphi | 3 | 28.11.2015 17:31 |
Программа для отчетов по проделанной работе, с чего начать?? | antoxamad | Помощь студентам | 0 | 03.04.2012 16:11 |
При запуске программы, выдает пустое окно. | Hooligan | Общие вопросы C/C++ | 1 | 29.02.2012 19:20 |
При запуске Windows XP возникает проблема | Jertyk | Компьютерное железо | 4 | 28.12.2009 17:38 |