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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: как в QTableView задать ширину заголовка  (Прочитано 21519 раз)
Evgeniya
Гость
« : Июль 09, 2009, 11:06 »

Добрый день!!!!
Подскажите пожалуйста как можно в QTableView задать ширину заголовка...
Я так полагаю через QHeaderView, но не могу найти соответствующую функцию...
Записан
Rcus
Гость
« Ответ #1 : Июль 09, 2009, 11:40 »

void QHeaderView::resizeSection ( int logicalIndex, int size )
/* reading roxx */
Записан
Evgeniya
Гость
« Ответ #2 : Июль 09, 2009, 12:16 »

С помощью этой функции задается ширина строчек
Например, ui.tableLS->verticalHeader()->resizeSection(0,50); - ширина первой строки
А мне нужно задать ширину самой шапки таблицы...просто длинные названия столбцов и растягивать в длину не вариант
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Июль 09, 2009, 12:26 »

С помощью этой функции задается ширина строчек
Например, ui.tableLS->verticalHeader()->resizeSection(0,50); - ширина первой строки

Что-то мне так кажется, что это высота строки, а не её ширина Улыбающийся Для задания ширины колонки используй

ui.tableLS->horizontalHeader()->resizeSection(0,50); - ширина первой колонки
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Evgeniya
Гость
« Ответ #4 : Июль 09, 2009, 12:32 »


Что-то мне так кажется, что это высота строки, а не её ширина Улыбающийся
пардон, это действительно высота Улыбающийся))
только мне надо высоту шапки таблицы изменить...
Записан
Rcus
Гость
« Ответ #5 : Июль 09, 2009, 12:53 »

ну есть setFixedHeight, только без переноса слов в нем нет смысла.
Записан
Evgeniya
Гость
« Ответ #6 : Июль 09, 2009, 13:13 »

ну есть setFixedHeight, только без переноса слов в нем нет смысла.

Спасибочки!!!
А как слова переносить?А то действительно смысла нет Улыбающийся
Записан
Evgeniya
Гость
« Ответ #7 : Июль 09, 2009, 14:29 »

неужели там все сложно с переносом слов :-( ... чет не могу найти как это сделать
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Июль 09, 2009, 15:39 »

Перенос нужно писать самому. Ничего сложного в этом нет. Можно даже подсмотреть в исходники QLabel, как сделано там
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Evgeniya
Гость
« Ответ #9 : Июль 09, 2009, 21:47 »

Чего-то не получается у меня...может я не так понимаю...
Написала в QLabel  Предельная розничная
                               торговая надбавка
Посмотрела в исходнике, там вон как все:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">\n<html><head><meta name="qrichtext" content="1" /><style type="text/css">\np, li { white-space: pre-wrap; }\n</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">\n<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Предельная розничная </span></p>\n<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;">торговая надбавка</p></body></html>

И что же мне вставить в заголовок QTable чтобы получилась аналогичная строчка
Записан
Evgeniya
Гость
« Ответ #10 : Июль 09, 2009, 22:24 »

Все намного проще чем думалось как всегда  Смеющийся
 model->setHeaderData(1,Qt::Horizontal,"Предельная оптовая\n торговая надбавка");
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #11 : Июль 09, 2009, 22:58 »

А я подумал, что нужен автоперенос (например при изменении ширины столбца)
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Evgeniya
Гость
« Ответ #12 : Июль 21, 2009, 15:38 »

А можно еще один вопросик по этому поводу...
Подскажите пожалуйста, как сделать, чтобы текст в столбце таблицы был выровнен по центру....
ui.tableView->verticalHeader()->setDefaultAlignment(Qt::AlignCenter) выравнивает по центру только самый первый столбец, где нумеруются строки. Или вообще это возожно сделать??
Записан
uriel
Гость
« Ответ #13 : Июль 21, 2009, 16:20 »

Один из вариантов - переопределить в модели метод data().
Код
C++ (Qt)
QVariant SomeModel::data(const QModelIndex &index, int role) {
   if (role == Qt::TextAlignmentRole && index.column() == 1) // просто как вариант
       return Qt::AlignCenter;
   else
       return SomeModelParentClass::data(index, role);
}
Записан
Evgeniya
Гость
« Ответ #14 : Июль 21, 2009, 16:46 »

Один из вариантов - переопределить в модели метод data().
Код
C++ (Qt)
QVariant SomeModel::data(const QModelIndex &index, int role) {
   if (role == Qt::TextAlignmentRole && index.column() == 1) // просто как вариант
       return Qt::AlignCenter;
   else
       return SomeModelParentClass::data(index, role);
}
Спасибочки!!!Вроде сам смысл поняла...только вот SomeModel и SomeModelParentClass это что???Или это нужно будет создать свой класс можели, унаследованный от QSqlQueryModel???
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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