cpp->html

本文探讨了如何使用C++将程序输出转化为HTML格式,涵盖了微软和Mozilla的实现细节,涉及标准库中的literals和输出流操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将C++源码转换成语法高亮显示HTML代码

bedaux.net上的代码稍作修改,使之更适合贴入Blog;另外把所有的东东结合到了一页,方便下载!:)

乾坤一笑
Email:smileonce@163.com
Blog: 一笑聊斋


将C++源代码copy到下面的方框里:


转换成 valid XHTML 1.1 (推荐使用)
转换成 old (non-valid) HTML 使用颜色标签(不推荐使用)
(大段代码可能需要等待一段时间)

void MainWindow::InitTableView() { // 创建模型 (22行 = 20数据行 + 2表头行,15列) ViewModel = new QStandardItemModel(22, 15, this); // 设置二级表头数据 // 确保第一行所有列都有item(包括空白单元格) for (int col = 0; col < 15; ++col) { // 创建所有单元格的item QStandardItem *item = new QStandardItem(); ViewModel->setItem(0, col, item); // 只在特定列设置文本 if (col == 7) { item->setText(QStringLiteral("磐石")); } else if (col == 10) { item->setText(QStringLiteral("本地")); } } // 合并表头单元格 ui->MainTableView->setSpan(0,0,2,1); ui->MainTableView->setSpan(0,1,2,1); ui->MainTableView->setSpan(0,2,2,1); ui->MainTableView->setSpan(0,3,2,1); ui->MainTableView->setSpan(0,4,2,1); ui->MainTableView->setSpan(0,5,2,1); ui->MainTableView->setSpan(0,6,2,1); ui->MainTableView->setSpan(0,13,2,1); ui->MainTableView->setSpan(0,14,2,1); ui->MainTableView->setSpan(0, 7, 1, 3); // 第一组 (8-10列) ui->MainTableView->setSpan(0, 10, 1, 3); // 第二组 (11-13列) // 第二行表头(各列标题) ViewModel->setItem(0, 0, new QStandardItem(QStringLiteral("序号"))); ViewModel->setItem(0, 1, new QStandardItem(QStringLiteral("图号"))); ViewModel->setItem(0, 2, new QStandardItem(QStringLiteral("图纸版本"))); ViewModel->setItem(0, 3, new QStandardItem(QStringLiteral("零部件名称"))); ViewModel->setItem(0, 4, new QStandardItem(QStringLiteral("特性编码"))); ViewModel->setItem(0, 5, new QStandardItem(QStringLiteral("名称"))); ViewModel->setItem(0, 6, new QStandardItem(QStringLiteral("特性状态"))); ViewModel->setItem(1, 7, new QStandardItem(QStringLiteral("类别"))); ViewModel->setItem(1, 8, new QStandardItem(QStringLiteral("规格"))); ViewModel->setItem(1, 9, new QStandardItem(QStringLiteral("图纸位置"))); ViewModel->setItem(1, 10, new QStandardItem(QStringLiteral("类别"))); ViewModel->setItem(1, 11, new QStandardItem(QStringLiteral("规格"))); ViewModel->setItem(1, 12, new QStandardItem(QStringLiteral("图纸位置"))); ViewModel->setItem(0, 13, new QStandardItem(QStringLiteral("同步状态"))); ViewModel->setItem(0, 14, new QStandardItem(QStringLiteral("操作"))); // 添加表格视图 ui->MainTableView->setModel(ViewModel); // 隐藏默认表头 ui->MainTableView->horizontalHeader()->setVisible(false); ui->MainTableView->verticalHeader()->setVisible(false); // 合并表头单元格 ui->MainTableView->setSpan(0,0,2,1); ui->MainTableView->setSpan(0, 7, 1, 3); // 第一组 (8-10列) ui->MainTableView->setSpan(0, 10, 1, 3); // 第二组 (11-13列) // 设置统一的行高(25像素) const int rowHeight = 25; for (int row = 0; row < 22; ++row) { ui->MainTableView->setRowHeight(row, rowHeight); } // 设置表头样式 - 确保所有表头单元格都设置为灰色背景且不可编辑 for (int row = 0; row < 2; ++row) { // 处理前两行(表头行) for (int col = 0; col < 15; ++col) { if (QStandardItem *item = ViewModel->item(row, col)) { // 设置文本居中对齐 item->setTextAlignment(Qt::AlignCenter); // 设置灰色背景 if (row == 0) { item->setBackground(QBrush(QColor(240, 240, 240))); // 深灰色 } else { item->setBackground(QBrush(QColor(240, 240, 240))); // 中灰色 } // 设置为不可编辑 item->setFlags(item->flags() & ~Qt::ItemIsEditable); // 设置为不可选择 item->setFlags(item->flags() & ~Qt::ItemIsSelectable); } } } //设置列宽 ui->MainTableView->setColumnWidth(0, 60); // 序号 ui->MainTableView->setColumnWidth(1, 160); // 图号 ui->MainTableView->setColumnWidth(2, 70); // 图纸版本 ui->MainTableView->setColumnWidth(3, 90); // 零部件名称 ui->MainTableView->setColumnWidth(4, 70); // 特性编码 ui->MainTableView->setColumnWidth(5, 180); // 名称 ui->MainTableView->setColumnWidth(6, 70); // 特性状态 ui->MainTableView->setColumnWidth(7, 90); // 类别 ui->MainTableView->setColumnWidth(8, 180); // 规格 ui->MainTableView->setColumnWidth(9, 90); // 图纸位置 ui->MainTableView->setColumnWidth(10, 70); // 类别 ui->MainTableView->setColumnWidth(11, 180); // 规格 ui->MainTableView->setColumnWidth(12, 90); // 图纸位置 ui->MainTableView->setColumnWidth(13, 70); // 同步状态 ui->MainTableView->setColumnWidth(14, 90); // 操作 // 设置圆点与三角形 ui->ConsistencyRadioLabel->setText(QStringLiteral( "<html>" "<span style='color: green;'>●</span>" // 绿色圆点 " 一致" // 默认颜色的文本 "</html>")); ui->ConsistencyRadioLabel->setText(QStringLiteral( "<html>" "<span style='color: green;'>●</span>" // 绿色圆点 " 一致" // 默认颜色的文本 "</html>")); // 设置圆点与三角形 "▲ 上三角形 (U+25B2)\n" KeyFeatureLabel ui->NonConsistencyRadioLabel->setText(QStringLiteral( "<html>" "<span style='color: red;'>●</span>" // 红色圆点 " 不一致" // 默认颜色的文本 "</html>")); ui->KeyFeatureLabel->setText(QStringLiteral( "<html>" "<span style='color: black;'>▲</span>" // 黑色三角 " 关键特性" // 默认颜色的文本 "</html>")); ui->KeyFeatureLabel_1->setText(QStringLiteral( "<html>" "<span style='color: none;'>△</span>" // 无色三角 " 重要特性" // 默认颜色的文本 "</html>")); QString BtnStyle = QStringLiteral("QPushButton {" "border: 2px solid #a0a0a0;" // 设置边框颜色 "border-style: outset;" // 设置为凸起样式 "padding: 5px;" // 设置内边距 "}" "QPushButton:pressed {" "border-style: inset;" // 按下时边框变为凹陷 "}"); ui->LoadBtn->setStyleSheet(BtnStyle); ui->RefreshBtn->setStyleSheet(BtnStyle); ui->ReleaseBtn->setStyleSheet(BtnStyle); ui->ReviewBtn->setStyleSheet(BtnStyle); ui->SaveBtn->setStyleSheet(BtnStyle); ui->UpdateBtn->setStyleSheet(BtnStyle); ui->UploadBtn->setStyleSheet(BtnStyle); ui->jumpToRockBtn->setStyleSheet(BtnStyle); }在这个程序里设置上下滚轮滚动时,水平表头不动,表格结构保持不变
最新发布
08-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值