• QTableWidget常用函数及注意事项


    0 常用设置

      //table setting
      //设置表头
      QStringList header;
      header<< "ID" << "Info1"<<"info2" << "info3";
      ui->tableWidget_1->setHorizontalHeaderLabels(header);
      //整行选中的方式
      ui->tableWidget_1->setSelectionBehavior(QAbstractItemView::SelectRows); 
      //禁止修改
      ui->tableWidget_1->setEditTriggers(QAbstractItemView::NoEditTriggers); 
      //显示列表头
      ui->tableWidget_1->verticalHeader()->setVisible(true); 
      //开启自动滚动
      ui->tableWidget_1->setAutoScroll(true);
       // end table setting

    1 添加表头内容

      QStringList header;
      header<<""<<tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5");
      tableWidget->setHorizontalHeaderLabels(header);


    2 设置表格:整行选择
      tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
      其他参数:
        QAbstractItemView.SelectItems 选中单个单元格
        QAbstractItemView.SelectRows 选中一行
        QAbstractItemView.SelectColumns 选中一列


    3 设置表格编辑方式
      tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
      其他参数:
        QAbstractItemView.NoEditTriggers 不对表格内容进行修改
        QAbstractItemView.CurrentChanged 任何时候都能对单元格修改
        QAbstractItemView.DoubleClicked 双击单元格
        QAbstractItemView.SelectedClicked 单击已选中的内容
        QAbstractItemView.EditKeyPressed 按下编辑键后编辑
        QAbstractItemView.AnyKeyPressed 按下任意键就能编辑
        QAbstractItemView.AllEditTriggers 以上条件全包括

    4 设置单元格字体颜色、背景颜色和字体字符
      QTableWidgetItem *item = new QTableWidgetItem("ID");
      item->setBackgroundColor(QColor(0,60,10));
      item->setTextColor(QColor(200,111,100));
      item->setFont(QFont("Helvetica"));
      tableWidget->setItem(0,1,item);

    5 设置单元格的大小
      //通过指定某个行或者列的大小
      tableWidget->setColumnWidth(3,200);
      tableWidget->setRowHeight(3,60);

      //设置为由内容决定
      tableWidget->resizeColumnsToContents();
      tableWidget->resizeRowsToContents();


    6 清除表格数据
      tableWidget->clear(); //清除所有可见数据(包括表头),行还在
      tableWidget->clearContents(); //只清除表中数据,不清除表头内容
      tableWidget->setRowCount(0); //连行也清除掉

    7 获取/添加/清除行数据
      //获取选中表格的行号
      int row = tableWidget->currentItem()->row();

      //获取表格中当前总行数
      int row = tableWidget->rowCount();

      //添加一行
      tableWidget->setRowCount(row+1);

      //清除row行
      tableWidget->removeRow(row);


    8 注意事项1
      在使用on_tableWidget_currentCellChanged槽函数时需要注意负值的判断,
      否则在使用clear()或clearContents()时进行删除表格数据时会调用此函数而使得程序异常
      void CAN_Demo::on_tableWidget_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
      {
        // cout << currentRow << currentColumn;
        // cout << previousRow << previousColumn;
        // Q_UNUSED(currentColumn);
        Q_UNUSED(previousRow); //初始化表格后的值为-1
        Q_UNUSED(previousColumn); //初始化表格后的值为-1

        //要增加功能检测
        if(currentRow < 0 || currentColumn < 0)
        {
          return;
        }
        ... //功能实现
      }

    参考链接:https://www.cnblogs.com/aiguona/p/10400111.html

  • 相关阅读:
    设计模式复习-状态模式
    设计模式复习-观察者模式
    设计模式复习-建造者模式
    设计模式复习-外观模式
    推荐算法-协同过滤
    设计模式复习-模板方法模式
    设计模式复习-原型模式
    设计模式复习-代理模式
    神经网络与机器学习 笔记—泛化和交叉验证
    神经网络与机器学习 笔记—改善反向传播的性能试探法
  • 原文地址:https://www.cnblogs.com/longxi/p/13274928.html
Copyright © 2020-2023  润新知