愚かな質問ですが、私は約1時間ほどこのくそからの道を見つけることができません。 QStandardItemModel
で行を追加しようとしているQTableView
ウィジェットがあります。 CTORでは、setModel()メソッドの後のQStandardItemModelへの追加方法は?
tableView->setModel(MyStandardItemModel);
前に、私は、この関数を実行します。
void MyDialog::addItem(const SomeSection& section)
{
SignalBlocker<QStandardItemModel> blocker(model_);
QStandardItem* visibilityItem = new QStandardItem;
visibilityItem->setCheckable(true);
visibilityItem->setCheckState(!section.hidden ? Qt::Checked : Qt::Unchecked);
visibilityItem->setData(QVariant::fromValue(section), Qt::UserRole + 1);
QStandardItem* descriptionItem = new QStandardItem(section.name);
QStandardItem* signatureItem = new QStandardItem;
if(section.sign)
{
signatureItem->setToolTip(tr("Требует подписи"));
signatureItem->setIcon(QIcon(":/signatures/images/signatures/check-sgn.png"));
}
model_->appendRow(StandardItemList() << visibilityItem << descriptionItem << signatureItem);
}
PS:StandardItemList
だから最初にすべての私はいくつかaddItem()'s
を作った後、setModel()
、すべてのちょうどtypedef QList< QStandardItem* > StandardItemList;
ですテーブル内に行が表示されます。 しかしは私がQTableView
ウィジェットの変更(新しい行と新しいMyNewSectionデータが表示されない
addItem(MyNewSection);
と、(クリックされたボタンから、現時点では)後で別の行を追加しようとしているときその中に)!モデルの内容をどうにかして更新する必要があると思いますが、モデルのドキュメントから正しい方法を見つけることができません...
助けが必要ですか?
ありがとうございます!
はい、あなたは正しいです!ありがとう - 私のせい... – mosg