Russian Qt Forum
Сентябрь 30, 2024, 02:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как изменять заголовки колонок в QDataTable ?  (Прочитано 3509 раз)
Jkc
Гость
« : Январь 15, 2007, 16:24 »

Вот просто создаю таблицу с использованием QSelectCursor
Код:
	
datTabStore->setSqlCursor(  select_cursor );
datTabStore->addColumn( "ftype",  "Тип",42);
datTabStore->addColumn( "fmark",  "Марка", 70);
datTabStore->addColumn("forg", "Организация", 120);
datTabStore->refresh();
datTabStore->show();

Теперь если я вновь пытаюсь использовать эту же таблицу (QDataTable) но по другому запросу и естественно с другими колонками.
Код:

datTabStore->setSqlCursor(  select_cursor2 );
datTabStore->addColumn( "sity",  "Горд",50);
datTabStore->addColumn( "strit",  "Улица", 70);
datTabStore->addColumn("forg", "Организация", 120);
datTabStore->refresh();
datTabStore->show();

я получаю таблицу с нужными мне данными, но заголовки колонок остаються прежними. Подскажите пожалуйста как можно менять заголовки колонок в одной таблице?
Записан
ENygma
Гость
« Ответ #1 : Январь 17, 2007, 18:47 »

попробуйте вместо
Код:
datTabStore->refresh();

написать
Код:
datTabStore->refresh(QDataTable::RefreshAll);
Записан
Jkc
Гость
« Ответ #2 : Январь 18, 2007, 12:25 »

В некоторых таблицах показывает только номера строк.
Записан
Jkc
Гость
« Ответ #3 : Январь 26, 2007, 14:01 »

для начала нужно ещё удалить старые колонки
Код:

    datTab->removeColumn(0);
    datTab->removeColumn(1);
    datTab->removeColumn(2);
    .....

потом создать новые
Код:

datTab->addColumn( "col1",  "колонка1");
datTab->addColumn( "col2",  "колонка2");
datTab->addColumn( "col3",  "колонка3");
......

потом рифреш
Код:

    datTab->refresh(RefreshAll);    

вот теперь всё заработало.
Это в случае если количество колонок разное, но если количество одинаковое то достаточно просто изменить названия
Код:

    datTab->horizontalHeader()->setLabel( 0, "Другое название1" );
    datTab->horizontalHeader()->setLabel( 1, "Другое название2");
    datTab->horizontalHeader()->setLabel( 2, "Другое название3");
Записан
ENygma
Гость
« Ответ #4 : Январь 26, 2007, 17:10 »

Цитата: "Jkc"
для начала нужно ещё удалить старые колонки
Код:

    datTab->removeColumn(0);
    datTab->removeColumn(1);
    datTab->removeColumn(2);
    .....


можно еще вот так:
Код:
int NCols = DbTable2->numCols();
    for ( int j = 0; j < NCols+1; j++ ) {
DbTable2->removeColumn(0);
    }


Цитата: "Jkc"
Это в случае если количество колонок разное, но если количество одинаковое то достаточно просто изменить названия
Код:

    datTab->horizontalHeader()->setLabel( 0, "Другое название1" );
    datTab->horizontalHeader()->setLabel( 1, "Другое название2");
    datTab->horizontalHeader()->setLabel( 2, "Другое название3");


к сожалению, не работает для QSqlSelectCursor
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 21.