2009-07-02 39 views
7

私はQTreeWidgetにいくつかの列を持っていますが、それにQTreeWidgetItemsを追加します。私は2番目の列を作ってみるので、私は、この値によってQTreeWidgetItemの役割とは何ですか?

QTreeWidgetItem has a method called setData(int column, int role, QVariant(data)) 

をアイテムを並べ替えることができ、各Itemための数値が含まれている私は、このrole引数が何であるか上の任意のドキュメントを見つけることができません。私が知っているのは、1または2に設定すると何かが列に表示されます。0または> = 3に設定すると、列に何も表示されません。数字は常にアルファベット順にソートされ、それは間違っている。

答えて

8

アプリケーション固有の目的でQt :: UserRoleを使用できます。 このデータはQVariantであるため、QListを作成して複数のデータを設定し、その後にQVariantにキャストしてデータを設定することができます。ここで

は一例です:

QTreeWidgetItem* item = new QTreeWidgetItem(); 
QList<QVariant> dataList; 
dataList.append("data 1"); 
dataList.append("data 2"); 
QVariant data(dataList); 
item->setData(0, Qt::UserRole, data); 
+0

の便宜と同等であること:のUserRole - それはあなたがあなたの目的に使用することができるだけの最初のものです。新しいデータ型を作成する必要はなく、複数の値を簡単に保存できます。 – pi3

6

関連文書は、Qt::ItemDataRoleQAbstractItemModel::setData)で見つけることができます。ロールは、渡すデータをどのように使用するかを指定するために使用されます。さまざまなロールを使用して、アイテムのツールチップ、フォント、または色を設定することができます。

4

注意item->text()あなたはQtのに限定されるものではないよitem->data(Qt::DisplayRole).toString()

関連する問題