本文整理汇总了C++中TreeNode::addItem方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeNode::addItem方法的具体用法?C++ TreeNode::addItem怎么用?C++ TreeNode::addItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeNode
的用法示例。
在下文中一共展示了TreeNode::addItem方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TreeNode
void Qtilities::Testing::TestObserver::testTreeChildrenContainment() {
// Example tree using tree node classes to simplify test:
QList<QObject*> children;
TreeNode* rootNode = new TreeNode("Root");
TreeNode* parentNode1 = rootNode->addNode("Parent 1");
children << parentNode1;
TreeNode* parentNode2 = rootNode->addNode("Parent 2");
children << parentNode2;
children << parentNode1->addItem("Child 1");
children << parentNode1->addItem("Child 2");
children << parentNode2->addItem("Child 3");
children << parentNode2->addItem("Child 4");
TreeItem* item = parentNode2->addItem("Child 5");
children << item;
// Now create and add a contained observer:
TreeNode* containedNode = new TreeNode("Contained Node");
children << containedNode;
children << containedNode->addItem("Contained Item 1");
children << containedNode->addItem("Contained Item 2");
children << containedNode->addItem("Contained Item 3");
containedNode->setParent(item);
QList<QObject*> children_verify = rootNode->treeChildren();
foreach (QObject* obj, children)
QVERIFY(children_verify.contains(obj) == true);
}
示例2: QVERIFY
void Qtilities::Testing::TestObserver::testSubjectLimit() {
TreeNode node;
node.setSubjectLimit(2);
QVERIFY(node.addItem("Item 1") != 0);
QVERIFY(node.addItem("Item 2") != 0);
QVERIFY(node.addItem("Item 3") == 0);
QVERIFY(node.setSubjectLimit(1) == false);
QVERIFY(node.setSubjectLimit(3) == true);
QVERIFY(node.addItem("Item 3") != 0);
}
示例3: itr
void Qtilities::Testing::TestSubjectIterator::testIterationConst() {
TreeNode* node = new TreeNode;
node->addItem("1");
node->addItem("2");
node->addItem("3");
node->addItem("4");
SubjectIterator<QObject> itr(node);
itr.current()->setObjectName("Test");
// The following should not compile:
//ConstSubjectIterator<QObject> constItr(node);
//constItr.current()->setObjectName("Test");
}
示例4: node
void Qtilities::Testing::TestObserver::testCountModificationStateChanges() {
TreeNode node("testCountModificationStateChangesNode");
QSignalSpy spy(&node, SIGNAL(modificationStateChanged(bool)));
node.addItem("1");
node.setModificationState(false);
node.addItem("2");
node.addItem("3");
//LOG_INFO("testCountModificationStateChanges: Signal Spy: modificationStateChanged(bool) -> count: " + QString::number(spy.count()));
QCOMPARE(spy.count(), 3);
spy.clear();
node.startProcessingCycle();
node.addItem("4");
node.addItem("5");
node.addItem("6");
TreeNode* nodeA = node.addNode("A");
nodeA->addItem("7");
TreeNode* nodeB = node.addNode("B");
nodeB->addItem("8");
node.endProcessingCycle();
//LOG_INFO("testCountModificationStateChanges: Signal Spy: modificationStateChanged(bool) -> count: " + QString::number(spy.count()));
QCOMPARE(spy.count(), 1);
node.saveToFile("testCountModificationStateChanges.xml");
node.deleteAll();
spy.clear();
node.loadFromFile("testCountModificationStateChanges.xml");
//LOG_INFO("testCountModificationStateChanges: Signal Spy: modificationStateChanged(bool) -> count: " + QString::number(spy.count()));
QCOMPARE(spy.count(), 1);
spy.clear();
node.deleteAll();
spy.clear();
//node.startProcessingCycle();
node.loadFromFile("testCountModificationStateChanges.xml");
//node.endProcessingCycle();
//LOG_INFO("testCountModificationStateChanges: Signal Spy: modificationStateChanged(bool) -> count: " + QString::number(spy.count()));
QCOMPARE(spy.count(), 1);
spy.clear();
}
示例5: itrA
void Qtilities::Testing::TestSubjectIterator::testIterationComplex() {
TreeNode node;
TreeNode* nodeA = node.addNode("A");
TreeNode* nodeB = node.addNode("B");
nodeA->addItem("1");
TreeItem* shared_item = nodeA->addItem("2");
nodeA->addItem("3");
nodeB->addItem("4");
nodeB->addItem("5");
nodeB->attachSubject(shared_item);
nodeB->addItem("6");
// If we want to iterate through the subjects in nodeA:
SubjectIterator<QObject> itrA(nodeA,SubjectIterator<QObject>::IterateChildren);
QVERIFY(itrA.current() != 0);
// In this case item1 will be skipped:
QStringList testListA;
testListA << itrA.current()->objectName();
while (itrA.hasNext()) {
testListA << itrA.next()->objectName();
}
QCOMPARE(testListA.count(), 3);
QCOMPARE(testListA.at(0), QString("1"));
QCOMPARE(testListA.at(1), QString("2"));
QCOMPARE(testListA.at(2), QString("3"));
// If we want to iterate through the subjects in nodeB:
SubjectIterator<QObject> itrB(nodeB,SubjectIterator<QObject>::IterateChildren);
// In this case item1 will be skipped:
QStringList testListB;
testListB << itrB.current()->objectName();
while (itrB.hasNext()) {
testListB << itrB.next()->objectName();
}
QCOMPARE(testListB.count(), 4);
QCOMPARE(testListB.at(0), QString("4"));
QCOMPARE(testListB.at(1), QString("5"));
QCOMPARE(testListB.at(2), QString("2"));
QCOMPARE(testListB.at(3), QString("6"));
// If we want to iterate through the subjects in nodeB:
SubjectIterator<QObject> itrC(shared_item,nodeB);
// In this case item1 will be skipped:
QStringList testListC;
testListC << itrC.current()->objectName();
while (itrC.hasNext()) {
testListC << itrC.next()->objectName();
}
QCOMPARE(testListC.count(), 2);
QCOMPARE(testListC.at(0), QString("2"));
QCOMPARE(testListC.at(1), QString("6"));
// If we want to iterate through the subjects in nodeB:
SubjectIterator<QObject> itrD(shared_item,nodeA);
// In this case item1 will be skipped:
QStringList testListD;
testListD << itrD.current()->objectName();
while (itrD.hasNext()) {
testListD << itrD.next()->objectName();
}
QCOMPARE(testListD.count(), 2);
QCOMPARE(testListD.at(0), QString("2"));
QCOMPARE(testListD.at(1), QString("3"));
}
示例6: main
int main(int argc, char *argv[])
{
QtilitiesApplication a(argc, argv);
QtilitiesApplication::setOrganizationName("Jaco Naude");
QtilitiesApplication::setOrganizationDomain("Qtilities");
QtilitiesApplication::setApplicationName("Qtilities Tester");
QtilitiesApplication::setApplicationVersion(QtilitiesApplication::qtilitiesVersionString());
// Create the observer widget in tree mode:
ObserverWidget* observer_widget = new ObserverWidget;
observer_widget->resize(600,850);
QtilitiesApplication::setMainWindow(observer_widget);
Log->setLoggerSessionConfigPath(QtilitiesApplication::applicationSessionPath());
LOG_INITIALIZE();
TreeNode* rootNodeCategorized = new TreeNode("Root");
rootNodeCategorized->enableCategorizedDisplay();
// TODO: This breaks the toolbar for some reason... Looks like a display issue since it only happens in QTabWidget:
rootNodeCategorized->displayHints()->setDisplayFlagsHint(ObserverHints::ItemView | ObserverHints::ActionToolBar);
rootNodeCategorized->displayHints()->setActionHints(ObserverHints::ActionAllHints);
rootNodeCategorized->displayHints()->setCategoryEditingFlags(ObserverHints::CategoriesEditableAllLevels | ObserverHints::CategoriesAcceptSubjectDrops);
rootNodeCategorized->displayHints()->setDragDropHint(ObserverHints::AllowDrags);
rootNodeCategorized->addItem("Child 1",QtilitiesCategory("Category 1::A",QString("::")));
rootNodeCategorized->addItem("Child 2",QtilitiesCategory("Category 1::B",QString("::")));
rootNodeCategorized->addItem("Child 3");
rootNodeCategorized->addItem("Child 4",QtilitiesCategory("Category 2"));
TreeItem* modified_item = rootNodeCategorized->addItem("Child 5",QtilitiesCategory("Category 2"));
rootNodeCategorized->displayHints()->setModificationStateDisplayHint(ObserverHints::CharacterModificationStateDisplay);
modified_item->setModificationState(true);
// Init and show the observer widget:
observer_widget->setObserverContext(rootNodeCategorized);
observer_widget->initialize();
// Test the tree model:
new ModelTest(observer_widget->proxyModel());
// Test the table model:
//new ModelTest(observer_widget->tableModel());
observer_widget->show();
QStringList items;
items << "A" << "B" << "C";
rootNodeCategorized->addItems(items);
TreeNode* nodeA = rootNodeCategorized->addNode("Node A");
nodeA->copyHints(rootNodeCategorized->displayHints());
TreeNode* nodeB = rootNodeCategorized->addNode("Node B");
nodeB->copyHints(rootNodeCategorized->displayHints());
nodeA->addItem("Child 1",QtilitiesCategory("Category 3::A",QString("::")));
nodeA->addItem("Child 2",QtilitiesCategory("Category 4::B",QString("::")));
nodeA->addItem("Child 3");
nodeA->addItem("Child 4",QtilitiesCategory("Category 5"));
nodeB->addItem("Child 1",QtilitiesCategory("Category 6::A",QString("::")));
nodeB->addItem("Child 2",QtilitiesCategory("Category 7::B",QString("::")));
nodeB->addItem("Child 3");
nodeB->addItem("Child 4",QtilitiesCategory("Category 8"));
return a.exec();
}