Здравствуйте, гость ( Вход | Регистрация )
vizir1989 | Дата 14.5.2012, 11:03 |
Я делал так, чтобы очистить полностью QGridLayout:
|
|
Litkevich Yuriy | Дата 30.6.2011, 6:15 |
если объект засунуть в другой layout или в другое место того же самого, то он удалиться из старого места автоматически В Qt нет копирования наследников QObject, это не тривиальная задача.... хотя если честно всегда думал что в таком случае в другой layout будет засовываться копия объекта |
|
ruzik | Дата 29.6.2011, 22:47 |
После долгих мучений проблема решена, я сделал это так: если объект засунуть в другой layout или в другое место того же самого, то он удалиться из старого места автоматически, как ни странно решение оказалось довольно простым, хотя если честно всегда думал что в таком случае в другой layout будет засовываться копия объекта с указателем на него Большое всем спасибо за помощь! P.S. кстати deleteLater() то же работал но после 3-4 нажатий ничего не случалось, то есть объект добавлялся, а старый не удалялся, а после еще 2-3 кликов опять все работало |
|
MoPDoBoPoT | Дата 29.6.2011, 21:46 |
В иходниках самих тролей, при удалении виджета, я наблюдал связку вызовов hide() и deleteLater() | |
silver47 | Дата 29.6.2011, 13:06 |
У меня есть решение, но оно "индусское". Подождем чего посоветуют более старшие товарищи | |
RazrFalcon | Дата 29.6.2011, 12:52 |
Поигрался с удалением виджетов. Виджеты то удаляются все хорошо, но от них остается "след". Во-во. У меня так же было. |
|
silver47 | Дата 29.6.2011, 12:29 |
Мда. Тоже самое. При удалении элемента, он удаляется, но остается, по прежнему, виден. | |
ruzik | Дата 29.6.2011, 11:49 |
QGridLayout разбит как бы на 2 части: верхняя, с цветами, там я и заменяю цвет и она работает нормально, без нижней части а нижняя часть - это часть стрелки, стрелка указывает на исходный цвет среди оттенков из которых были получены оттенки, соответственно при изменении текущего цвета, стрелка вполне возможно будет указывать на другой цвет, соответственно нужно удалить все элементы нижней части и вставить стрелку |
|
silver47 | Дата 29.6.2011, 6:53 |
Поигрался с удалением виджетов. Виджеты то удаляются все хорошо, но от них остается "след". QHBoxLayout размещает на себе 4 QLabel'а c текстом. и по нажатии кнопки, предыдущие удаляются, новые создаются. Если размещать на лэйауте нечто иное, а не QLabel, например кнопки, то все работает как часы. 2ruzik: А нельзя обойтись без удаления виджета? почему бы не заменить у него такое свойство как ЦВЕТ? |
|
ruzik | Дата 28.6.2011, 11:14 |
Попробовал, работает не так
У меня gidLayout в котором 2 строки и 10 столбцов и мне надо очищать всю вторую строку, но получается, как на картинках Может будет понятнее если я приведу весь нужный код, он добавляет в gridLayout виджеты с цветами = оттенками текущего, кончено код достаточно громосткий и надеюсь что получиться разобраться в проблеме не разбираясь в самом коде
RColorItemWidget это наследник обычного виджета(QWidget) |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 13:37 |