使用QT C ++,图表有时会消失

时间:2014-06-20 08:40:16

标签: c++ windows qt opengl

我尝试执行第一次CS106L作业GraphViz。在这个项目中,我们使用QT UI framework来显示节点和边。一切似乎工作得很好,除了线路和节点有时在我运行程序时奇怪地消失(大约四分之一)。

这是我的环境

这是我的步骤:

  • 下载starter code并使用qmake -spec win32-msvc2013 -tp vc生成vs2013项目。

  • 将以下代码添加到main.cpp

    中的main函数中
    int nodes[5][2] = { { 0, 0 }, { 10, 10 }, { 10, 20 }, { 20, 20 }, { 20, 10 } };
    int edges[4][2] = { { 1, 2 }, { 2, 3 }, { 3, 4 }, { 4, 1 } };
    SimpleGraph* myGraph = new SimpleGraph();
    vector<Node> nodeList;
    vector<Edge> edgeList;
    for (unsigned int i = 0; i < sizeof(nodes) / sizeof(nodes[0]); i++) {
        Node node;
        node.x = nodes[i][0];
        node.y = nodes[i][1];
        nodeList.push_back(node);
    }
    for (unsigned int i = 0; i < sizeof(edges) / sizeof(edges[0]); i++) {
        Edge edge;
        edge.start = edges[i][0];
        edge.end = edges[i][1];
        edgeList.push_back(edge);
    }
    InitGraphVisualizer(*myGraph);
    myGraph->nodes = nodeList;
    myGraph->edges = edgeList;
    DrawGraph(*myGraph);
    return 0;
    
  • 我得到了一个包含这些代码的正方形,但是当我运行exe文件时,我绘制的图像并不总是出现(大约在4中出现)

此外,我想问一下如何更改边/节点配置并刷新图形。我试过了:

InitGraphVisualizer(*myGraph);
myGraph->nodes = nodeList;
myGraph->edges = edgeList;
DrawGraph(*myGraph);
myGraph->edges.push_back({ 1, 3 });
DrawGraph(*myGraph);

但失败了。

0 个答案:

没有答案