Попробовал, работает не так
QLayoutItem *child;
while ((child = gridLayout->takeAt(10)) != 0) {
delete child;
}
У меня gidLayout в котором 2 строки и 10 столбцов и мне надо очищать всю вторую строку, но получается, как на картинках
Может будет понятнее если я приведу весь нужный код, он добавляет в gridLayout виджеты с цветами = оттенками текущего, кончено код достаточно громосткий и надеюсь что получиться разобраться в проблеме не разбираясь в самом коде
void RShadesColorView::setColorsInView(QString colorName)
{
RizekColorManager * rcm;
rcm = qobject_cast<RizekColorManager*>(parent()->parent()->parent()->parent()->parent());
QColor c(colorName);
int r = c.red();
int g = c.green();
int b = c.blue();
if (r>=246)
r = 245;
if (r<=9)
r=10;
if (g>=246)
g = 245;
if (g<=9)
g=10;
if (b>=246)
b = 245;
if (b<=9)
b=10;
for (int a=-5;a<5;a++)
{
RColorItemWidget * w = new RColorItemWidget;
w->setVisible(false);
QPalette * p = new QPalette;
p->setColor(QPalette::Background, QColor::fromRgb(r+2*a,g+2*a,b+2*a));
w->setFixedHeight(17);
w->setFixedWidth(17);
w->setAutoFillBackground(true);
w->setPalette(*p);
w->setToolTip(QColor::fromRgb(r+2*a,g+2*a,b+2*a).name());
w->setColorName(QColor::fromRgb(r+2*a,g+2*a,b+2*a).name());
connect(w, SIGNAL(clicked(QString)), rcm, SLOT(setRgbHslHsvCmykByColorName(QString)));
gridLayout->addWidget(w,0,a+5);
if (c.toRgb() == QColor::fromRgb(r+2*a,g+2*a,b+2*a))
{
QLayoutItem *child;
while ((child = gridLayout->takeAt(10)) != 0)
delete child;
QPushButton * pb = new QPushButton;
pb->setFixedHeight(17);
pb->setFixedWidth(17);
pb->setProperty("isColorPointer", true);
gridLayout->addWidget(pb, 1, a+5);
}
w->show();
}
}
RColorItemWidget это наследник обычного виджета(QWidget)
Сообщение отредактировал ruzik - 28.6.2011, 11:16
Эскизы прикрепленных изображений
 Р В Р’ВВВВВВВВВВзображенРСвЂВВВВВВВВВР В Р’Вµ СѓРСВВВВВВВВВВеньшено
225 x 41 (754 байт)
|
 Р В Р’ВВВВВВВВВВзображенРСвЂВВВВВВВВВР В Р’Вµ СѓРСВВВВВВВВВВеньшено
229 x 54 (1.24 килобайт)
|
 Р В Р’ВВВВВВВВВВзображенРСвЂВВВВВВВВВР В Р’Вµ СѓРСВВВВВВВВВВеньшено
225 x 56 (1.21 килобайт)
|