QTableView的使用基础知识

一、创建模型对象       
    QTableView * tableView = new QTableView();

二、创建数据模型       
    QStandardItemModel *model = new QStandardItemModel (this);

三、表头       
    //设置列数
        model->setColumnCount(4);

    //添加表头标题
        model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("姓名")); 
        model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("年龄")); 
        model->setHeaderData(2,Qt::Horizontal,QString::fromLocal8Bit("性别"));        
        model->setHeaderData(3,Qt::Horizontal,QString::fromLocal8Bit("生日"));

    //绑定对象和模型
        tableView ->setModel(model);

    //表头信息显示位置
       (1)水平居左
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
       (2)水平居右
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignRight);
       (3)水平居中
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);
       (4)水平两端对齐
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);
       (5)垂直靠上
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignTop);
        (6)垂直靠下
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignBottom);
       (7)垂直居中
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignVCenter);
       (8)垂直和水平居中 等价于Qt::AlignHCenter | Qt::AlignVCenter
            tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
    
四、列属性
    //设置指定列不可编辑
        QStandardItemModel *model = new QStandardItemModel ();
        int row_list = model->rowCount();                             //得到行数   
        QStandardItem *item_name = new QStandardItem ("小明");
        model->setItem(row_list,2,item_name);                   //设置每一行的第3列不可编辑
        item_name->setFlags(Qt::NoItemFlags);

    //设置列宽不可变动,即不能通过鼠标拖动增加列宽        
        tableView->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);   

    //设置列的宽度
        tableView->setColumnWidth(0,100);    

    //隐藏列表头 
        tableWidget->verticalHeader()->setVisible(false);           

五、行属性
    //设置选中时为整行选中        
        tableView->setSelectionBehavior(QAbstractItemView::SelectRows); 
  
    //隐藏行表头  
         tableView->horizontalHeader()->setVisible(false); 

六、综合属性
    //设置排序
       (1)指定列降序
            model->sort(3, Qt::DescendingOrder);    
       (2)所有的列都排序
            tableView->setSortingEnabled(true);    

    //背景网格线设置
        tableView->setShowGrid(true / false);        显示/隐藏

    //设置tableView窗口大小
        tableView->resize(width,height);

    //数据清楚
        model->clear();
    
    //文本居中
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        或者
    item->setTextAlignment(Qt::AlignCenter);

猜你喜欢

转载自blog.csdn.net/weixin_41734758/article/details/108500383