本文整理汇总了C++中CFG::getBlocks方法的典型用法代码示例。如果您正苦于以下问题:C++ CFG::getBlocks方法的具体用法?C++ CFG::getBlocks怎么用?C++ CFG::getBlocks使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFG
的用法示例。
在下文中一共展示了CFG::getBlocks方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_actionLoad_XML_triggered
void MainWindow::on_actionLoad_XML_triggered()
{
scene->clear();
graph.clear();
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", "Files (*.xml)", NULL);
CFG cfg = parser.getCFG(fileName);
// add all blocks
for(Block block : cfg.getBlocks()) {
Node* node = new Node(block.getName(), 50, 50);
node->setX(qrand() % ((500 + 1) - (-500)) + (-500));
node->setY(qrand() % ((500 + 1) - (-500)) + (-500));
scene->addItem(node);
graph.addNode(node);
}
// add all edges
for(Block block : cfg.getBlocks()) {
AbstractNode* from = graph.getNode(block.getName());
for(QString succName : block.getSuccessors()) {
AbstractNode* to = graph.getNode(succName);
EdgeItem* edge = new EdgeItem(from,to,true);
edge->adjust();
scene->addItem(edge);
graph.addEdge(from,to,edge);
}
}
graph.setStart(graph.getNode(cfg.getStart().getName()));
}