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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataTable изменить ширину столбцов, если данные читаються через QSqlCursor?  (Прочитано 3490 раз)
myr
Гость
« : Январь 12, 2010, 14:24 »

QDataTable изменить ширину столбцов, если данные читаються через QSqlCursor?
setColumnWidth ни до курсора, ни после, ничего не дает. У всех столбцов одинаковая ширина.
Спасибо.

QT3.4
Записан
BaltikS
Гость
« Ответ #1 : Январь 13, 2010, 07:25 »

Странно... Нужен пример вызова... Как вариант можно попробовать так сделать dataTable->horizontalHeader()->resizeSection(0, 200);
Записан
myr
Гость
« Ответ #2 : Январь 13, 2010, 09:35 »

Спасибо. Все получилось.

Не там вызывала.
Если вызывать  setColumn Witth() до  refresh() - работает. После - нет.
resizeSection() - везде работает

 // QDateTable * dtPozic;
 QSqlSelectCursor *cur = new QSqlSelectCursor( "select * from tab1",dBaseSQL->pDB);
 

 dtPozic->setSqlCursor( cur, TRUE, TRUE ); 

 dtPozic->setColumnWidth ( 0 ,10); // - Работает

 dtPozic->refresh();
 
 dtPozic->horizontalHeader()->setLabel(0,QObject::tr("Nmb" ));
 dtPozic->horizontalHeader()->setLabel(1,QObject::tr("X" ));
 dtPozic->horizontalHeader()->setLabel(2,QObject::tr("Y" ));

// dtPozic->setColumnWidth ( 0 ,100);  // Не работает
 dtPozic->setColumnWidth ( 1 ,10);      // Не работает
 
 dtPozic->horizontalHeader()->resizeSection(2,10);  // Работает

 dtPozic->refresh();    
Записан
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #3 : Август 25, 2010, 13:01 »

А можно и самому столбцы добавить:
Код:
QSqlCursor *сursor = new QSqlCursor("Таблица");
 table->setSqlCursor(cursor);
 table->addColumn("Поле в таблице", tr("Заголовок столбца"), Ширина столбца);
Записан

Qt 5.11.0, Win, MinGW
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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