我想在我的tablewidget的特定行列位置将我的字体设置为粗体。 我确实喜欢这个,但要休息一下。
QFont font("Helvetica", 12, QFont::Bold);
overviewTable->item(2,2)->setFont(font);
请帮助
答案 0 :(得分:4)
我觉得一切都好。这是文档所说的:
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);
答案 1 :(得分:0)
在您使用setItem()
之前,您可能没有打电话给overviewTable->item(2,2)
为单元格(2,2)设置项目,这可能会让您感到休息。正如Qt文件所说,
QTableWidgetItem * QTableWidget :: item(int row,int column)const
返回给定行和列的项(如果已设置); 否则返回0。
也就是说,您的overviewTable->item(2,2)
可能会返回0,从而导致Segmentation fault
来电中的setFont()
。
所以你设置字体的方法是完全正确的。你只需要首先调用setItem(),就像mosg的答案所示。
<强>增加:强>
如果您的overviewTable
是在Qt Designer中创建的QTableWidget
,那么在Designer中双击一个单元格(只是为了进入其编辑模式,不需要实际输入任何东西)将会为该单元格调用setItem()
的效果。稍后在您的代码中,您可以直接使用item()
函数,而无需先调用setItem()
。