Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Jkc от Январь 15, 2007, 16:24



Название: Как изменять заголовки колонок в QDataTable ?
Отправлено: 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();

я получаю таблицу с нужными мне данными, но заголовки колонок остаються прежними. Подскажите пожалуйста как можно менять заголовки колонок в одной таблице?


Название: Как изменять заголовки колонок в QDataTable ?
Отправлено: ENygma от Январь 17, 2007, 18:47
попробуйте вместо
Код:
datTabStore->refresh();

написать
Код:
datTabStore->refresh(QDataTable::RefreshAll);


Название: Как изменять заголовки колонок в QDataTable ?
Отправлено: Jkc от Январь 18, 2007, 12:25
В некоторых таблицах показывает только номера строк.


Название: Как изменять заголовки колонок в QDataTable ?
Отправлено: Jkc от Январь 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");


Название: Как изменять заголовки колонок в QDataTable ?
Отправлено: ENygma от Январь 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