c++ 设置 QTableWidgetItem 的字号

在 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);

关键说明:

  1. 字号单位

    • setPointSize():使用磅(pt),1 磅 ≈ 1/72 英寸
    • setPixelSize():使用像素(px)
    QFont font;
    font.setPixelSize(14);  // 使用像素单位
  2. 优先级

    • 单个单元格字体设置 > 表格默认字体 > 应用程序全局字体
  3. 完整示例代码

#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();
}

注意事项:

  1. 如果同时使用样式表和代码设置字体,样式表的优先级通常更高
  2. 对于已存在的单元格,需要先获取项再修改:
QTableWidgetItem* item = ui->tableWidget->item(row, column);
if(item) {
    QFont font = item->font();
    font.setPointSize(16);
    item->setFont(font);
}
  1. 要设置特定状态的字体(如选中时),使用:
table.setStyleSheet(
    "QTableWidget::item:selected { color: white; font-size: 14pt; }"
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值