html隐藏tableview,c – Qt隐藏QTableView中的列

我想隐藏QtableView中的ID列,我不能在我的实现上执行此操作.谁能帮我?

void MainWindow::on_actionClear_Search_triggered()

{

model = new QStandardItemModel(cars.size(),6,this);

//create header

createHeader(model);

//set data to the table view

populate(cars);

ui->tableView->setColumnHidden(6,true);

ui->tableView->setModel(model);

}

void MainWindow::createHeader(QStandardItemModel *model){

model->setHorizontalHeaderItem(0,new QStandardItem("Car"));

model->setHorizontalHeaderItem(1, new QStandardItem("Type"));

model->setHorizontalHeaderItem(2, new QStandardItem("Mileage"));

model->setHorizontalHeaderItem(3, new QStandardItem("Year"));

model->setHorizontalHeaderItem(4, new QStandardItem("Is registered"));

model->setHorizontalHeaderItem(5, new QStandardItem("ID"));

}

void MainWindow::populate(const QList &vehicles)

{

int j = 0;

QList::ConstIterator iter;

for( iter= vehicles.begin(); iter != vehicles.end(); iter++){

const Vehicle& car = *iter;

//set car

QString makeAndModel = car.getGeneralData().getMake() + car.getGeneralData().getModel();

QStandardItem *mAndM = new QStandardItem(QString(makeAndModel));

mAndM->setEditable(false);

model->setItem(j,0,mAndM);

//set type

QStandardItem *type = new QStandardItem(QString(car.getGeneralData().getType()));

type->setEditable(false);

model->setItem(j,1,type);

//set mileage

QString mileageString = QString::number(car.getGeneralData().getMileage());

QStandardItem *mileage = new QStandardItem(QString(mileageString));

mileage->setEditable(false);

model->setItem(j,2,mileage);

//set year

QString yearString = QString::number(car.getGeneralData().getYear());

QStandardItem *year = new QStandardItem(QString(yearString));

year->setEditable(false);

model->setItem(j,3,year);

//set registration

QString regString = VehicleHelper::convertBoolToString(car.getRegistration().isRegistered());

QStandardItem *regDate = new QStandardItem(QString(regString));

regDate->setEditable(false);

model->setItem(j,4,regDate);

//set ID column

QStandardItem *idNumber = new QStandardItem(QString(car.getVehicleID().getID()));

idNumber->setEditable(false);

model->setItem(j,5,idNumber);

j++;

}

}

解决方法:

你使用ui-> tableView-> setColumnHidden(6,true);,但是没有索引为6的列.你应该写ui-> tableView-> setColumnHidden(5,true);相反,因为ID列号是5而不是6.

更新:

在将模型设置为视图后,还需要隐藏列,即:

ui->tableView->setModel(model);

ui->tableView->setColumnHidden(5, true);

标签:qtableview,c,qt

来源: https://codeday.me/bug/20191005/1855709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值