0
QTreeWidget
にはカスタムウィジェットが設定されています。私は、外部APIから項目の種類を取得します。テキスト値、数値などである可能性があります。 種類によって、私はQTreeWidgetItem
に異なるコントロールを提供します。たとえば、テキスト入力の場合はQLabel
、数値の場合はQSpinBox
などです。QTreeWidgetの垂直行間隔
これは、次のコードを介して行われます:コードは動作しますが、結果としてTreeWidgetが問題ました
for (GenApi::INode * poNode : oNodeList) // iterate over a list of items which i want to represent in the treewidget
{
QTreeWidgetItem * poRootItem = new QTreeWidgetItem(poTree); //poTree is a QTreeWidget
poRootItem->setText(0, poNode->GetDisplayName().c_str());
poTree->addTopLevelItem(poRootItem); // add as category
GenApi::NodeList_t oInnerNodes;
poNode->GetChildren(oInnerNodes);
for (GenApi::INode * poInnerNode : oInnerNodes) // each of those nodes may have innter child nodes
{
QTreeWidgetItem * poItem = new QTreeWidgetItem();
CNodeItemBase * poNodeUI = NULL;
if (GenApi::CIntegerPtr(poInnerNode) != NULL)
poNodeUI = new CNodeItemInteger(*poInnerNode, poTree); //CNodeItem... inherits from QWidget and takes the tree as parent
else if (GenApi::CStringPtr(poInnerNode) != NULL)
poNodeUI = new CNodeItemString(*poInnerNode, poTree);
// more possibilities go here....
if (poNodeUI != NULL)
{
poRootItem->addChild(poItem);
poItem->setText(0, poNodeUI->GetDisplayName().c_str()); // set text of the item
poTree->setItemWidget(poItem, 1, poNodeUI->m_poControl); // set label/spinbox as widget of the treeitem
}
}
}
:結果TreeWidgetItemが行う間隔をたくさん
を持っていますTreeWidgetは視覚的に読み込み/反復が難しい。アイテムを縮小するQSizePolicyのようなものを提供するためのすばやく簡単な方法はありますか?私はあらゆる組み合わせを試みましたが、これまでのところ何も働いていませんでした。
あなたは 'verticalHeaderDefaultSectionSize'を設定しようとしましたか? –
いいえ、詳しく教えてください。私はその物件に関する確かな情報は見つかりませんでした。 – Hafnernuss
これはデザイナで 'verticalHeaderDefaultSectionSize'と呼ばれています。コードではおそらく' table-> verticalHeader-> setDefaultSectionSize(...) 'を使用する必要があります –