QTreeWidgetItemでの役割は何ですか?
-
21-08-2019 - |
質問
私はいくつかの列を含むQTreeWidget
を持って、私はそれにQTreeWidgetItems
を追加します。私は、この値によって、アイテムを並べ替えることができますので、2番目の列は、各Item
ための数値を含めるようにしよう。
QTreeWidgetItem has a method called setData(int column, int role, QVariant(data))
私はこのrole
引数が何であるか上の任意のドキュメントを見つけることができません。私が知っているすべては私が1または2に設定した場合、私は0または> = 3に設定すると、何かが、何も列に表示しない、列に表示されていることをであるにかかわらず、数字は常にアルファベット順にソートされてしまいます、これは間違っています。
解決
あなたは、アプリケーションの特定の目的のためにQtの::のUserRoleを使用することができます。 このデータはQVariantあるので、あなたは、複数のデータを設定し、QVariantにそのキャストそれの後、データを設定するQListにを作成することができます。
ここでは一例であります:
QTreeWidgetItem* item = new QTreeWidgetItem();
QList<QVariant> dataList;
dataList.append("data 1");
dataList.append("data 2");
QVariant data(dataList);
item->setData(0, Qt::UserRole, data);
他のヒント
関連文書は、 Qtの:: ItemDataRoleの下に見つけることができますの( QAbstractItemModel :: setDataメソッドので見つかりました) 。ロールは、あなたが渡しているデータを使用するためにすべきかを指定するために使用されています。あなたは他のものの間で、アイテムのツールチップ、フォントや色を設定するには、異なる役割を使用することができます。
item->text()
が
item->data(Qt::DisplayRole).toString()
する便利な等価であることに注意してください 所属していません StackOverflow