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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Настройка шрифтов в QTableWidget  (Прочитано 6800 раз)
Nemo2000
Гость
« : Январь 25, 2011, 17:15 »

Как настроить шрифты в таблице, чтобы в разных ячейках был разный шрифт,размер и т.д.?
В одной ячейке также могут быть символы с разными шрифтами.
Должно выйти что-то наподобие таблицы с QTextEdit в каждой ячейке.
Есть идея сделать всё делегатами,но не пойму как передавать туда нужные параметры шрифта.. Непонимающий
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #1 : Январь 25, 2011, 17:38 »

А если реагировать на Qt::FontRole в перегруженном data()?:
Код
C++ (Qt)
QVariant MyModel::data(const QModelIndex& item, int role) const
{
if (role == Qt::FontRole)
{
  ...
}
}
 
« Последнее редактирование: Январь 25, 2011, 17:40 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
Nemo2000
Гость
« Ответ #2 : Январь 25, 2011, 18:07 »

ммм...извини,немного не понял что ты имел ввиду..можно поподробней Строит глазки

Чтобы было яснее..у меня есть кнопка "Bold" при нажатии на которую меняю на жирный ,например, выделеный текст. При её нажатии в QTextEdit можно просто настроить
Код:
ui->textEdit->setFontWeight(QFont::Bold);
но как это сделать при нажатии кнопки если QTextEdit в делегате..не понимаю Непонимающий
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #3 : Январь 26, 2011, 15:10 »

ммм...извини,немного не понял что ты имел ввиду..можно поподробней Строит глазки

Чтобы было яснее..у меня есть кнопка "Bold" при нажатии на которую меняю на жирный ,например, выделеный текст. При её нажатии в QTextEdit можно просто настроить
Код:
ui->textEdit->setFontWeight(QFont::Bold);
но как это сделать при нажатии кнопки если QTextEdit в делегате..не понимаю Непонимающий

Я просто имел ввиду MVC, т.е. использование QTableView + какая-нибудь модель, QSqlQueryModel например. С QTableWidget не работал, поэтому ничего конкретного сказать не могу - но поскольку он наследник QTableView и используемые во вьюхе методы public, то в QTableWidget они тоже должны быть доступны. Вобщем наследуешь QSqlQueryModel, перегружаешь его метод data(), и отлавливаешь нужный тебе role. В твоём случае, как я понял, это Qt::FontRole. Возвращаться методом в этом случае должен настроенный тобой QFont. Ну а если тебе надо просто сделать жирным выделенный текст, то всё ещё проще. Есть вьюха, напр. viewTable и модель modelSql. Добавляешь во вьюху виджет QTextEdit:
Код
C++ (Qt)
QTextEdit* textEdit = new QTextEdit("text");
viewTable->setIndexWidget(this->modelSql->index(0, 0), textEdit); //ячейка с координатами 0:0
 

Затем в слоте на клик по кнопке что-то вроде:
Код
C++ (Qt)
QFont font;
font.setBold(true);
viewTable->indexWidget(this->modelSql->index(0, 0))->setFont(font);
 

Ну а как это оптимизировать, чтоб не использовать жёсткие координаты разберёшься)
« Последнее редактирование: Январь 26, 2011, 15:18 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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