Как сделать граф, написанный с использованием библиотеки GraphViz c ++, в png?

Это приложение Qt, но без графического интерфейса. Я пытаюсь создать график с использованием библиотеки GraphViz C ++. Все работает нормально, за исключением того, что я не могу получить вывод в файле .png, который я могу открыть в Windows. Я сделал, как сказано в руководстве, нет ошибок, только что выходной файл не создается. Я искал все возможные каталоги, но тщетно. Пожалуйста, наведите меня на это.

Заголовочный файл gw.h

#ifndef GW_H
#define GW_H

#include <QApplication>
#include <QDebug>

#include "gvc.h"#include <iostream>
#include <map>
using namespace std;

struct Node
{
NODES() {}
Agnode_t* actualNode;
char* name;

};

class GRAPHVIZ_WRAPPER {
public:
GVC_t* graphContext;
Agraph_t* graph;
map <char*,Agnode_t*> nodesTable;

GRAPHVIZ_WRAPPER(int x)
{
graphContext = gvContext();
graph = agopen("Node Graph" , Agdirected , NULL);
}void addNode(char* lable)
{
qDebug("Adding Node");
Agnode_t* node = agnode(graph,lable,TRUE);
nodesTable.insert(pair<char*,Agnode_t*>(lable,node));
}

void addEdge(char* node1 , char* node2, char* lable)
{

qDebug("Adding Edge");
Agnode_t* tailNode = nodesTable[node1];
Agnode_t* headNode = nodesTable[node2];

agedge(graph,tailNode,headNode,lable,TRUE);
}

void draw()
{
gvLayout(graphContext,graph,"dot");
gvRenderFilename(graphContext,graph,"png","QwertyGrap.pngh");
gvFreeLayout(graphContext,graph);
}

void close()
{
agclose(graph);
}
};#endif // GW_H

Файл Main.cpp

#include "gw.h"#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
//w.show();

//w.drawGraph();
GRAPHVIZ_WRAPPER Mgraph(5);
Mgraph.addNode("Node1");
Mgraph.addNode("Node2");
Mgraph.addNode("Node3");
Mgraph.addEdge("Node1","Node2","76");
Mgraph.addEdge("Node1","Node3","86");
Mgraph.addEdge("Node2","Node1","96");

Mgraph.draw();
qDebug("Drawing");
Mgraph.close();return a.exec();
}

Выход (Как видите, программа работает и ошибок нет)

введите описание изображения здесь

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]