crossplatform.ru

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

 
Тема закрытаНачать новую тему
> [РЕШЕНО] QTableWidget, почему при удалении накапливаются строки?
0xF
  опции профиля:
сообщение 22.3.2008, 22:32
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 71
Регистрация: 12.11.2007
Пользователь №: 20

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нужна таблица, которую я буду заполнять данными, очищать и снова заполнять другими данными. Количество строк разное, поэтому надо чистить таблицу и по новой вставлять строки. После первой очистки остаётся одна строка, после второй уже две, строки накапливаются... когда количество строк доходит до 5, они перестают накапливаться после очистки :blink:
Урезал код, оставил только это, и все равно с удалением фигня какая-то:
cTable::cTable( QWidget *parent ) : QTableWidget( parent )
{
    setColumnCount( 2 );
    setEditTriggers( QAbstractItemView::NoEditTriggers );
    setHorizontalScrollMode( QAbstractItemView::ScrollPerPixel );
    setSelectionMode( QAbstractItemView::NoSelection );
    horizontalHeader()->setStretchLastSection( true );
    setTabKeyNavigation( true );

    QStringList labels;
    labels << "Left" << "Right";
    setHorizontalHeaderLabels( labels );

    horizontalHeader()->setClickable( false );
    horizontalHeader()->setResizeMode( 1, QHeaderView::Stretch );
    verticalHeader()->hide();
}

void cTable::AddRow( void )
{
    insertRow( rowCount() );
}

void cTable::Clear( void )
{
    for( int i = 0; i < rowCount(); i++ ) {
        removeRow( i );
    }
}

// ** Ну и юзаю
table->Clear();
table->AddRow( ... );
table->AddRow( ... );
...


Строки накапливаются :blink: Почему?

Сообщение отредактировал Litkevich Yuriy - 11.2.2009, 20:28
Причина редактирования: уточнил название темы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
0xF
  опции профиля:
сообщение 22.3.2008, 22:49
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 71
Регистрация: 12.11.2007
Пользователь №: 20

Спасибо сказали: 0 раз(а)




Репутация:   0  


Мда... нашел... оказывается оно строки сдвигает после удаления, надо так удалять:
int n = rowCount();
for( int i = 0; i < n; i++ ) {
    removeRow( 0 );
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 12:41