Есть QScrollArea
или любой другой виджет. В него добавляются другие виджеты и, соответственно, рисуются на нем. После, этот виджет очищается (удаляются все виджеты на нем), и в него добавляются новые. Но при это не очищается то, что уже вывелось на экран и все выводится поверх старого.
Как визуально очистить виджет?
QLayout* scrollLayout = scroll->layout();
for(int i = 0; i < scrollLayout->count(); ++i)
{
delete scrollLayout->takeAt(i);
}
В приведенном фрагменте:
QLayout* scrollLayout = scroll->layout();
for(int i = 0; i < scrollLayout->count(); ++i)
{
delete scrollLayout->takeAt(i);
}
вы удаляете экземпляры QLayoutItem
текущего слоя. Их удаление никак не влияет на жизненный цикл виджетов, размещенных в слое, поскольку они фактически принадлежат объекту scroll
. Из документации:
When you use a layout, you do not need to pass a parent when constructing the child widgets. The layout will automatically reparent the widgets (using QWidget::setParent()) so that they are children of the widget on which the layout is installed.
Note: Widgets in a layout are children of the widget on which the layout is installed, not of the layout itself. Widgets can only have other widgets as parent, not layouts.
Для корректного удаления виджетов необходимо удалять их явно:
while (QLayoutItem* item = scrollLayout->takeAt(0)) {
delete item->widget();
delete item;
}
Если QLayoutItem
также содержит вложенные элементы слоя, то необходимо проходиться и по ним (можно сделать функцию очистки рекурсивной).
Виртуальный выделенный сервер (VDS) становится отличным выбором
При записи в файл, помимо текста добавляются различные символы, хотя если вызывать функцию без переменной с текстом, то все хорошо
Есть виджет, назовем его Link, и окно MainWindowНужно сделать так, чтобы по нажатию на виджет Link выполнялось какое-то действие из MainWindow, например...
Использую статические открытые переменные типа QMapЗаполнение произвожу с помощью статической функции, которая возвращает QMap
Есть некоторая функция, принимающая в качестве аргумента вектор любого типа через шаблон