在 C++ 中设置 QTableWidgetItem 的字号可以通过以下几种方法实现:
方法 1:直接设置 QTableWidgetItem 的字体
// 创建 QTableWidgetItem
QTableWidgetItem* item = new QTableWidgetItem("文本");
// 创建并设置字体
QFont font;
font.setPointSize(12); // 设置字号为 12 磅
item->setFont(font);
// 添加到表格
ui->tableWidget->setItem(0, 0, item);
方法 2:链式设置(C++11 及以上)
QTableWidgetItem* item = new QTableWidgetItem("文本");
item->setFont(QFont().setPointSize(12)); // 链式调用
ui->tableWidget->setItem(0, 0, item);
方法 3:设置整个表格的默认字体
// 创建并设置表格字体
QFont tableFont;
tableFont.setPointSize(12);
ui->tableWidget->setFont(tableFont);
// 后续添加的单元格将继承该字体
ui->tableWidget->setItem(0, 0, new QTableWidgetItem("继承字体"));
方法 4:使用样式表(QSS)
// 设置全局样式(影响所有单元格)
ui->tableWidget->setStyleSheet(
"QTableWidget::item { font-size: 12pt; }"
);
方法 5:在创建项时设置字体
QFont font;
font.setPointSize(14);
QTableWidgetItem* item = new QTableWidgetItem();
item->setText("自定义字体");
item->setFont(font);
ui->tableWidget->setItem(1, 1, item);
关键说明:
-
字号单位:
setPointSize():使用磅(pt),1 磅 ≈ 1/72 英寸setPixelSize():使用像素(px)
QFont font; font.setPixelSize(14); // 使用像素单位 -
优先级:
- 单个单元格字体设置 > 表格默认字体 > 应用程序全局字体
-
完整示例代码:
#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QFont>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTableWidget table(3, 2); // 3行2列
// 方法 1:设置单个单元格
QTableWidgetItem *item1 = new QTableWidgetItem("单元格 1");
QFont font1;
font1.setPointSize(12);
item1->setFont(font1);
table.setItem(0, 0, item1);
// 方法 2:设置表格默认字体
QFont tableFont;
tableFont.setPointSize(14);
table.setFont(tableFont);
table.setItem(1, 1, new QTableWidgetItem("继承字体"));
// 方法 3:使用样式表
table.setStyleSheet("QTableWidget::item { font-size: 16pt; }");
table.resize(400, 300);
table.show();
return a.exec();
}
注意事项:
- 如果同时使用样式表和代码设置字体,样式表的优先级通常更高
- 对于已存在的单元格,需要先获取项再修改:
QTableWidgetItem* item = ui->tableWidget->item(row, column);
if(item) {
QFont font = item->font();
font.setPointSize(16);
item->setFont(font);
}
- 要设置特定状态的字体(如选中时),使用:
table.setStyleSheet(
"QTableWidget::item:selected { color: white; font-size: 14pt; }"
);
798

被折叠的 条评论
为什么被折叠?



