QT的QItemModelBarDataProxy类的使用

时间:2025-05-12 10:35:16
// By defining row and column categories, you tell the mapping which row and column each item // belongs to. The categories must match the data stored in the model in the roles you define // for row and column mapping. In this example we expect "year" role to return four digit year // and "month" to return three letter designation for the month. // // An example of an item in model would be: // Requested role -> Returned data // "year" -> "2006" // Matches the first row category, so this item is added to the first row. // "month" -> "jan" // Matches the first column category, so this item is added as first item in the row. // "income" -> "12.1" // "expenses" -> "9.2" QStringList years; QStringList months; years << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012"; months << "jan" << "feb" << "mar" << "apr" << "may" << "jun" << "jul" << "aug" << "sep" << "oct" << "nov" << "dec"; QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy(customModel, QStringLiteral("year"), // Row role QStringLiteral("month"), // Column role QStringLiteral("income"), // Value role years, // Row categories months); // Column categories //... // To display different data later, you can simply change the mapping. proxy->setValueRole(QStringLiteral("expenses"));