本文整理汇总了C++中QStack::value方法的典型用法代码示例。如果您正苦于以下问题:C++ QStack::value方法的具体用法?C++ QStack::value怎么用?C++ QStack::value使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QStack
的用法示例。
在下文中一共展示了QStack::value方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadObjectVariablesData
////////////////////////////////////////////////////////////////////////////////
/// @brief
////////////////////////////////////////////////////////////////////////////////
void EditorWindow::loadObjectVariablesData() {
//Create special mapping from materials databases
QMap<QString,QString> special_mapping;
//Parse out list of materials by class
EVDS_VARIABLE* database;
if (EVDS_System_GetDatabaseByName(system,"material",&database) == EVDS_OK) {
SIMC_LIST* entries;
EVDS_Variable_GetList(database,&entries);
SIMC_LIST_ENTRY* entry = SIMC_List_GetFirst(entries);
while (entry) {
char name[256] = { 0 };
char print_name[256] = { 0 };
char class_str[256] = { 0 };
EVDS_VARIABLE* attribute;
EVDS_VARIABLE* material = (EVDS_VARIABLE*)SIMC_List_GetData(entries,entry);
if (EVDS_Variable_GetAttribute(material,"name",&attribute) == EVDS_OK) {
EVDS_Variable_GetString(attribute,name,255,0);
}
if (EVDS_Variable_GetAttribute(material,"print",&attribute) == EVDS_OK) {
EVDS_Variable_GetString(attribute,print_name,255,0);
}
if (!print_name[0]) strcpy(print_name,name);
//Add to list
special_mapping["@materials._"] += QString(name) + "\n" + QString(print_name) + "\n";
if (EVDS_Variable_GetAttribute(material,"class",&attribute) == EVDS_OK) {
EVDS_Variable_GetString(attribute,class_str,255,0);
if (class_str[0]) {
special_mapping["@materials."+QString(class_str)] += QString(name) + "\n" + QString(print_name) + "\n";
} else {
//EVDS_BREAKPOINT();
}
}
entry = SIMC_List_GetNext(entries,entry);
}
}
//Load information about editable objects and properties
QFile xml_file(":/evds.xml");
if (!xml_file.open(QIODevice::ReadOnly)) {
return;
}
QStack<QString> currentTag;
QStack<QString> currentName;
int variable_index = 0;
QXmlStreamReader xml(&xml_file);
while (!xml.atEnd()) {
xml.readNext();
if (xml.isStartElement()) {
currentTag.push(xml.name().toString());
currentName.push(xml.attributes().value("name").toString());
//printf("[s] %s\n",xml.name().toAscii().data());
if (currentTag.top() == "object_vars") {
variable_index = 0;
}
if (currentTag.top() == "csection_vars") {
variable_index = 0;
}
} else if (xml.isEndElement()) {
if (currentTag.top() == "var") {
variable_index++;
}
currentTag.pop();
currentName.pop();
//printf("[e] %s\n",xml.name().toAscii().data());
} else if (xml.isCharacters() && !xml.isWhitespace()) {
if (currentTag.value(currentTag.count()-3) == "object_vars") {
QString objectType = currentName.value(currentName.count()-3);
if (objectVariables[objectType].count() <= variable_index) {
objectVariables[objectType].append(QMap<QString,QString>());
}
QString value = xml.text().toString();
QMapIterator<QString, QString> i(special_mapping);
while (i.hasNext()) {
i.next();
value.replace(i.key(),i.value());
}
objectVariables[objectType][variable_index][currentTag.top()] = value;
}
if (currentTag.value(currentTag.count()-3) == "csection_vars") {
QString csectionType = currentName.value(currentName.count()-3);
if (csectionVariables[csectionType].count() <= variable_index) {
csectionVariables[csectionType].append(QMap<QString,QString>());
}
QString value = xml.text().toString();
QMapIterator<QString, QString> i(special_mapping);
while (i.hasNext()) {
i.next();
value.replace(i.key(),i.value());
}
//.........这里部分代码省略.........