QT 5 给设计器添加继承自QGraphicsView的自定义widget

QT 5 add a custom widget inherited from QGraphicsView to designer

我有一个来自修改后的弹性节点示例的自定义小部件。它继承自 QGraphicsView。在示例中,它被设置为主要 window 中的中央小部件,因此无法添加任何内容。这是示例中 main 的代码:

#include "graphwidget.h"

#include <QApplication>
#include <QTime>
#include "mainwindow.h"

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));

    GraphWidget *widget = new GraphWidget;

    QMainWindow window;
    window.setCentralWidget(widget);

    window.show();
    return app.exec();
}

我想将小部件添加到 ui 表单,以便我可以添加一些按钮和输入。我怎样才能做到这一点?

您现在正在做的是申请。

如果您想在 Qt 中制作自定义小部件,您需要将其构建为自定义设计器小部件 - 一个插件(作为 Dll)。

在 Qt creator 中选择 OtherProject=>Qt Custom Designer Widget 并创建一个项目。您需要构建为发布版本,而不是调试版本。

构建后,如果 Qt 还没有,您需要将 .dll 文件复制到 Qt/plugins/designerQt/Tools/QtCreator/bin/plugins - 您会发现 .dll 在那里。您还需要使用工具链构建插件,因为 Qt creator/designer 即 VisualStudio 2013 64 位或 Mingw - 必须 相同。

不容易,但祝你好运。

更简单的方法是在 ui 表单中添加 QGraphicsView 并将其提升为 GraphWidget class.