admin 发表于 2023-3-6 11:55:57

一种自定义颜色条的方法,直接可以用,可以作为CAE后处理




一种自定义颜色条的方法,直接可以用,可以作为CAE后处理







void UI_ColorRangeUDB::UI_ShowColorMapBlocks()
{
        int colorNum = integerColorNum->Value();
        vector<BlockStyler::UIBlock*> hiddenGroup;
        hiddenGroup.clear();
        vector<BlockStyler::UIBlock*> shownGroup;
        shownGroup.clear();
        string groupPreStr = "groupColorRange";
        string doubleUPreStr = "doubleU";
        string doubleLPreStr = "doubleL";
        //get all the groups with the name str //groupColorRange6
        vector<BlockStyler::UIBlock*> allBlocks = theUserDefinedUIBlock->TopBlock()->GetBlocks();
        //type: Group        name : groupColorRange
        //type : Group        name : groupColorRange1
        //type : Group        name : groupColorRange10
        //type : Group        name : groupColorRange11
        //type : Group        name : groupColorRange12
        //type : Group        name : groupColorRange2
        //type : Group        name : groupColorRange3
        //type : Group        name : groupColorRange4
        //type : Group        name : groupColorRange5
        //type : Group        name : groupColorRange6
        //type : Group        name : groupColorRange7
        //type : Group        name : groupColorRange8
        //type : Group        name : groupColorRange9

        for (int i = 0; i < allBlocks.size(); i++)
        {
                BlockStyler::UIBlock* tempBlock = allBlocks;
                if (isSameNXString("Group", tempBlock->Type().GetText()))
                {
                        string blockNameStr = tempBlock->Name().GetLocaleText();
                        size_t findIndex = blockNameStr.find("groupColorRange");
                        if (findIndex != string::npos)
                        {
                                string subStr = blockNameStr.substr(groupPreStr.length());
                                // Echo("%s", subStr.c_str());
       //Echo("%d -- %d", atoi(subStr.c_str()), colorNum);
                                if (colorNum >= atoi(subStr.c_str()))
                                {
                                        shownGroup.push_back(tempBlock);
                                }
                                else
                                {
                                        hiddenGroup.push_back(tempBlock);
                                }
                        }
                }
        }
        if (!shownGroup.empty())
        {
                for (auto a : shownGroup)
                {
                        a->SetShow(true);

                }
        }
        if (!hiddenGroup.empty())
        {
                for (auto a : hiddenGroup)
                {
                        a->SetShow(false);
                }
        }

    //实时更新显示

    UI_UpdateDoubleRangeValue();
}


页: [1]
查看完整版本: 一种自定义颜色条的方法,直接可以用,可以作为CAE后处理