[QT][DEMO] QTableWidget 设置某一列禁止编辑

例程 : 又是好风景 : http://blog.csdn.net/qiao_yihan/article/details/46413345

 

关键点: 

1.QTableWidgetItem 的 setFlags() 和 flags()

2.QTableWidget 不能 设置 setEditTriggers() 为 QAbstractItemView::NoEditTriggers,否则1中的设置会失效

table_widget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑

 

代码:

    int NumOfReg = 5;
    ui->tableWidget->setColumnCount(11);
    ui->tableWidget->setRowCount(NumOfReg);
    /* 设置 tableWidget */
    ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "Id" << "Name" << "Unit" << "Value" << "Min" << "Max"  \
                                                   << "Type" << "Mode" << "Enable" << "Last read" << "Last write");
    ui->tableWidget->verticalHeader()->setVisible(false); // 隐藏水平header
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems);   // 单个选中
    ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);  // 可以选中多个


    /* 设置 Id Name 字段的值不能修改 */
    /* 设置不可修改的Id Name两列的背景颜色为灰色 */
    for(int i = 0; i < NumOfReg; i++) {
        QTableWidgetItem *item = new QTableWidgetItem();
        //item->setBackground(QBrush(QColor(Qt::lightGray)));
        item->setFlags(item->flags() & (~Qt::ItemIsEditable));
        ui->tableWidget->setItem(i, 0, item);
    }
    for(int i = 0; i < NumOfReg; i++) {
        QTableWidgetItem *item = new QTableWidgetItem();
        item->setBackground(QBrush(QColor(Qt::lightGray)));
        item->setFlags(item->flags() & (~Qt::ItemIsEditable));
        ui->tableWidget->setItem(i, 1, item);
    }
MainWindow.c

 

 

 

工程文件:

 http://download.csdn.net/detail/ewrest/9854319

 

转载于:https://www.cnblogs.com/ourran/p/6913256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值