Это приложение 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();
}
Выход (Как видите, программа работает и ошибок нет)
Задача ещё не решена.
Других решений пока нет …