如何将字体粗体设置为表格小部件中的特定行

时间:2010-05-20 09:29:41

标签: qt qt4 qt-creator

我想在我的tablewidget的特定行列位置将我的字体设置为粗体。 我确实喜欢这个,但要休息一下。

QFont font("Helvetica", 12, QFont::Bold);
overviewTable->item(2,2)->setFont(font);

请帮助

2 个答案:

答案 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()

相关问题