2013-09-25 6 views
8

में क्यूटी छुपाएं कॉलम मैं तालिका दृश्य में आईडी कॉलम छिपाना चाहता हूं और मैं इसे अपने कार्यान्वयन पर नहीं कर सकता। क्या कोई मेरी मदद कर सकता है?QTableView

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<Vehicle> &vehicles) 
{ 
int j = 0; 
QList<Vehicle>::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++; 
} 

} 

उत्तर

14

आप ui->tableView->setColumnHidden(6, true); उपयोग करते हैं, लेकिन वहाँ सूचकांक 6. के साथ कोई स्तंभ आप ui->tableView->setColumnHidden(5, true); बजाय लिखना चाहिए है, आईडी स्तंभ संख्या नहीं बल्कि 6. से

अद्यतन है क्योंकि:

मॉडल को देखने के लिए सेट करने के बाद आपको कॉलम (ओं) को छिपाने की भी आवश्यकता है, यानी:

ui->tableView->setModel(model); 
ui->tableView->setColumnHidden(5, true); 
+0

मैंने अन्य इंडेक्स पर कोशिश की है और काम नहीं कर रहा है। – laura

+0

@laura कृपया ऊपर दिए गए अद्यतन उत्तर को खोजें। – vahancho

संबंधित मुद्दे