QT中表格控件使用

一、QTableView表头设置样式

//控件样式
QString setcolor="QHeaderView{"
                 "border:0px solid #ffffff;"
                 "outline:0px;"
                 "background:#000000;"
                 "}"
                 "QHeaderView::section:horizontal:first{"
                 "border:1px solid #ffffff;"
                 "background:#000000;"
                 "margin:0px;"
                 "}"
                 "QHeaderView::section:horizontal:middle{"
                 "border:1px solid #ffffff;"
                 "background:#000000;"
                 "margin:0px;"
                 "}"
                 "QHeaderView::section:horizontal:last{"
                 "border:1px solid #ffffff;"
                 "background:#000000;"
                 "margin:0px;"
                 "}";
ui->tableView->horizontalHeader()->setStyleSheet(setcolor);

设置表格内容居中对齐,重写QStyledItemDelegate类

class CenterAlignedDelegate : public QStyledItemDelegate
{
public:
    CenterAlignedDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {}

    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
    {
        QStyleOptionViewItem opt = option;
        initStyleOption(&opt, index);

        opt.displayAlignment = Qt::AlignCenter; // 设置对齐方式为居中

        QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter);
    }
};
调用重写的类
    // 设置内容居中显示
    CenterAlignedDelegate *delegate = new CenterAlignedDelegate(this);
    ui->tableView->setItemDelegate(delegate);

二、使用QTableWidget控件,先清除在重新创建控件,设置内容水平垂直对齐,内容不可编辑,合并单元格。

//先将ui->stackedWidget_openFile中的内容清空
    while(ui->stackedWidget_4->count() > 0)
    {
        QWidget *lastPage = ui->stackedWidget_4->widget(ui->stackedWidget_4->count() - 1);
        ui->stackedWidget_4->removeWidget(lastPage);
        lastPage->deleteLater(); // 释放内存
    }

    QTableWidget *tableWidget=new QTableWidget();
    ui->stackedWidget_4->addWidget(tableWidget);

    // 隐藏行表头
    tableWidget->verticalHeader()->setVisible(false);
    // 隐藏列表头
    tableWidget->horizontalHeader()->setVisible(false);
    tableWidget->setRowCount(9);
    tableWidget->setColumnCount(7);
    tableWidget->setSpan(0, 0, 1, 3); // 第一行的第一列跨越三列
    tableWidget->setSpan(0, 1, 1, 2); // 第一行的第二列和第三列合并为一列
    tableWidget->setSpan(0, 3, 1, 2); // 第一行的第四列和第五列为一列
    tableWidget->setSpan(0, 5, 1, 2); // 第一行的第四列和第五列为一列
    // 设置样式
    QString styleSheet = "QTableWidget {"
                         "    background-color: black;"
                         "    color: white;"
                         "    gridline-color: white;"
                         "    font-size: 13pt;"  // 设置字体大小为 13 磅
            "    font-family: 黑体;"  // 设置字体为宋体
            "}";
    tableWidget->setStyleSheet(styleSheet);
    tableWidget->setItem(0, 0, new QTableWidgetItem("参数")); // 设置第一行第二列的内容
    tableWidget->setItem(0, 3, new QTableWidgetItem("信息")); // 设置第一行第四列的内容
    tableWidget->setItem(0, 5, new QTableWidgetItem("数量")); // 设置第一行第六列的内容

    // 将第一行第一列的内容居中对齐
    tableWidget->item(0, 0)->setTextAlignment(Qt::AlignCenter);

    // 将第一行第四列的内容居中对齐
    tableWidget->item(0, 3)->setTextAlignment(Qt::AlignCenter);

    // 将第一行第六列的内容居中对齐
    tableWidget->item(0, 5)->setTextAlignment(Qt::AlignCenter);

    tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);

相关推荐

  1. QT表格使用

    2024-04-21 09:12:01       36 阅读
  2. QT使用QTableView

    2024-04-21 09:12:01       16 阅读
  3. 【PyQt】读取MySQL数据填充到Qt表格

    2024-04-21 09:12:01       14 阅读
  4. QT如何使用自定义

    2024-04-21 09:12:01       45 阅读
  5. QtListWidget总结

    2024-04-21 09:12:01       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 09:12:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 09:12:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 09:12:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 09:12:01       20 阅读

热门阅读

  1. 在QT中使用QTableView与数据库连接

    2024-04-21 09:12:01       15 阅读
  2. 生成创建table 的sql sed ‘s/REM //‘

    2024-04-21 09:12:01       16 阅读
  3. 安卓手机APP开发__媒体开发部分__音轨的选择

    2024-04-21 09:12:01       15 阅读
  4. Mysql 和 PostgreSQL 到底选啥?

    2024-04-21 09:12:01       11 阅读
  5. NLOS中如何提取出首达路径

    2024-04-21 09:12:01       12 阅读
  6. 【python】python基础学习笔记

    2024-04-21 09:12:01       13 阅读
  7. 使用 Cucumber框架进行BDD测试的一些项目

    2024-04-21 09:12:01       11 阅读
  8. 2024年学习计划

    2024-04-21 09:12:01       11 阅读
  9. Stylus 入门使用方法

    2024-04-21 09:12:01       11 阅读
  10. Stylus入门使用方法

    2024-04-21 09:12:01       17 阅读