我想将我的字体设置为粗体,特别是我的tablewidget的行列位置。 我这样做,但得到了休息。如何将字体粗体设置为表格小部件中的特定行
QFont font("Helvetica", 12, QFont::Bold);
overviewTable->item(2,2)->setFont(font);
请帮助
我想将我的字体设置为粗体,特别是我的tablewidget的行列位置。 我这样做,但得到了休息。如何将字体粗体设置为表格小部件中的特定行
QFont font("Helvetica", 12, QFont::Bold);
overviewTable->item(2,2)->setFont(font);
请帮助
我觉得一切都很好。这里是什么文档说:
void QTableWidgetItem::setFont (const QFont & font)
设置用于显示该项目的文本的字体给定的字体。
也许你的overviewtableTable 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的::项目(INT行,诠释列)常量
返回给定行是否已设置列的项目; 否则返回0。
也就是说,你可能overviewTable->item(2,2)
返回0,从而引起setFont()
呼叫Segmentation fault
。
所以你的手段来设置字体是完全正确的。刚开始,你只需要调用setItem()就可以了。
新增:
如果您overviewTable
在Qt Designer创建一个QTableWidget
,然后在设计器上双击单元格(刚刚进入它的编辑模式,无需实际输入任何东西)将具有为该单元呼叫setItem()
的效果。稍后在代码中,您可以直接使用item()
函数,而无需先致电setItem()
。
什么是overviewTable?它是QTableWidget或QTableView? – mosg 2010-05-20 09:36:53