QT设置表格控件单行可写

    xiaoxiao2021-03-25  159

    1.设置表格控件只读:

    ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

    2.设置表格单元格条目只读:

    QTableWidgetItem *item = ui->tableWidget->item(row,0); item->setFlags(Qt::NoItemFlags);

    3.设置表格控件可写

    ui->tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged);

    4.但是我用 item->setFlags(Qt::ItemIsEditable) 设置单元格条目可写就失败了

    5.经过一番斗争得到如下设置表格控件单行可写的函数: 大概思路:先将整个控件设为可写,再将特定行之外的行数设置为不可写

    void setWriteability(int row, bool bl)//row为想要设置可写性的表格行数下标,bl为设置为可写还是只读,true为单行可写,false为整张表只读 { if(bl) { ui->tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged);//所有可写 //非选中行均设置为不可写 QTableWidgetItem *item;//存放每一个单元格条目 int i = 0; for(; i < row; i++)//先将指定行之前的行数设为只读 { for(int j=0; j<7; j++) { item = ui->tableWidget->item(i,j); item->setFlags(Qt::NoItemFlags); } } i++;//跳过指定的可写行 for(; i >row && i < ui->tableWidget->rowCount(); i++)//再将指定行之后的行数设为只读 { for(int j=0; j<7; j++) { item = ui->tableWidget->item(i,j); item->setFlags(Qt::NoItemFlags); } } }else{ ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//只读 } }

    记录一下,如果各位大神有更好的方法,恳请留言,先谢过~~~

    转载请注明原文地址: https://ju.6miu.com/read-3583.html

    最新回复(0)