qt中tableview使用

南宫才艺
2023-12-01
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QStandardItem"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //提供了用于存储自定义数据的通用模型
        QStandardItemModel *model = new QStandardItemModel(13,2);
        model->setHeaderData(0,Qt::Horizontal,tr("参数名"));
        model->setHeaderData(1,Qt::Horizontal,tr("参数值"));


        QStringList dataName;
        dataName <<"系统工作状态"
                 <<"通讯站号"
                 <<"通讯波特率"
                 <<"烟感状态1"
                 <<"烟感状态2"
                 <<"水浸状态1"
                 <<"水浸状态2"
                 <<"前门状态"
                 <<"后门状态"
                 <<"人体感应状态1"
                 <<"人体感应状态2"
                 <<"输入9状态"
                 <<"输入10状态";
        QStringList Value;
        Value    <<"0"
                 <<"0"
                 <<"115200"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"0"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"1"
                 <<"0"
                 <<"0";

        //循环插入数据
        for(int row=0;row<13;row++)
        {
            model->insertRows(row,1); //插入一行
            model->setData(model->index(row,0), dataName.at(row)); //插入第一列 插入一个1000-2000的随机数
            model->setData(model->index(row,1), Value.at(row));

            //设置为居中
            model->item(row,0)->setTextAlignment(Qt::AlignCenter);
            model->item(row,1)->setTextAlignment(Qt::AlignCenter);
        }

        ui->tableView->horizontalHeader()->setVisible(true);//显示或隐藏表头
        ui->tableView->verticalHeader()->setVisible(false);//显示或隐藏序列行

        ui->tableView->setAutoScroll(true);//自动滚动条
        //ui->tableView->resizeColumnsToContents(); //根据内容调整大小
        ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//根据容器调整大小
        ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//只读
        ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选中模式为选中行
        ui->tableView->setSelectionMode( QAbstractItemView::SingleSelection); //设置选中单行
        ui->tableView->setModel(model); //使用

}

MainWindow::~MainWindow()
{
    delete ui;
}

 类似资料: