crossplatform.ru

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


  Ответ в Как удалить item из QListWidget, по нажатию кнопки в нем.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
RazrFalcon Дата 3.8.2011, 13:00
  Спасибо. То что нужно.
У меня все было точно также, разве что в классе-наследнике я не кнопке setProperty() делал, а просто переменную завел.
Моя ошибка была в том, что я не переназначал индексы. И после каждого удаления они сбивались конечно же, и получалось черти что :lol:
igor_bogomolov Дата 3.8.2011, 12:27
  Я когда то делал так (только у меня таблица была):

1. для каждой кнопки в свойствах указывал номер строки за которую он отвечает
    QToolButton *delete_button = new QToolButton();
    delete_button->setProperty("row", row);
    table->setCellWidget(row,4, delete_button);
    connect(delete_button, SIGNAL(clicked()), SLOT(queryDeleteProfileMulticast()));

2. в слоте узнавал какая кнопка нажата и за какую строку она отвечает
void CgcParamTab::queryDeleteProfileMulticast()
{
    QToolButton *button = qobject_cast<QToolButton *>(sender());
    if(!button) return;

    bool ok = false;
    int row = button->property("row").toInt(&ok);
    if(!ok) return;

3. удалял нужную строку
    table->removeRow(row);

4. переназначал свойство для оставшихся кнопок
for (........) {
        toolButton = table->cellWidget(row, 4);
        if (toolButton!=0) toolButton->setProperty("row", row);
}

RazrFalcon Дата 3.8.2011, 10:24
  Есть QListWidget, в каждый элемент вставлен виджет. setItemWidget();
Сам виджет - класс наследник от QWidget.
На каждом виджете расположена кнопка закрыть.

Как по нажатию этой кнопки (закрытьС) удалить итем QListWidget'а, содержащий этот вижет.

В самом виджете я вызываю deleteLater(); и он удаляется. но остается просто пустой QListWidgetItem.
Как узнать какой необходимо удалить?

Пример:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 17:22