Я хочу установить шрифт жирным шрифтом в определенной позиции столбца строки моего виджета таблицы. Мне это понравилось, но у меня перерыв.
QFont font("Helvetica", 12, QFont::Bold);
overviewTable->item(2,2)->setFont(font);
Пожалуйста помоги
2 ответа
Думаю, все ок. Вот что говорят документы:
void QTableWidgetItem::setFont ( const QFont & font )
Устанавливает шрифт, используемый для отображения текста элемента, для данного шрифта.
Может быть, ваша overviewTable const?
ДОБАВЛЕНО:
Этот вариант отлично подходит для моего Qt 4.6:
tableWidget = new QTableWidget(12, 3, this);
for (int i = 0; i < 12; i++) {
for (int j = 0; j < 3; j++) {
QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
(i+1)*(j+1)));
tableWidget->setItem(i, j, newItem);
}
}
QFont font;
font.setBold(true);
tableWidget->item(2, 2)->setFont(font);
Может быть, у вас сбой, потому что вы не позвонили setItem()
, чтобы установить элемент для ячейки (2, 2), прежде чем использовать overviewTable->item(2,2)
. Как говорится в документе Qt,
QTableWidgetItem * QTableWidget :: item (int row, int column) const
Возвращает элемент для данной строки и столбца, если он был установлен; в противном случае возвращает 0.
То есть ваш overviewTable->item(2,2)
, вероятно, возвращает 0, что вызывает Segmentation fault
в вызове setFont()
.
Итак, ваши средства для установки шрифта совершенно правильны. Вам просто нужно сначала вызвать setItem (), как предлагает ответ mosg.
ДОБАВЛЕНО:
Если ваш overviewTable
- это QTableWidget
, созданный в Qt Designer, то в конструкторе двойной щелчок по ячейке (просто для входа в режим редактирования, фактически ничего вводить не нужно) будет иметь эффект вызов setItem()
для этой ячейки. Позже в коде вы можете напрямую использовать функцию item()
без предварительного вызова setItem()
.
Похожие вопросы
Новые вопросы
qt
Qt - это кроссплатформенная среда разработки приложений, широко используемая для разработки прикладного программного обеспечения, которая может работать на различных программных и аппаратных платформах с минимальными изменениями в базовом коде или без таковых, при этом обладая мощью и скоростью собственных приложений. Qt доступен как с коммерческими, так и с открытыми лицензиями.