使用QGraphicsView时,是否有“简便的方法”将自定义UI添加到Qt应用程序?

时间:2019-05-29 10:26:02

标签: qt

我正在使用QGraphicsView在QGraphicsScene中显示随机生成的多边形,并且一切正常,但现在我想向应用程序添加自定义UI样式,事实证明,手工做每件事都很烦人,而有许多很棒的选择,例如QtQuick。是否可以将QtQuick或类似的东西与graphicsView一起使用?

快速注释: 我是Qt的新手,所以这里可能会遗漏一些明显的东西!

编辑:
添加了一个图像进行说明,我只想修改滑块和按钮以具有自定义纹理!

enter image description here

2 个答案:

答案 0 :(得分:1)

使用QQuickWidget类在Qt小部件中嵌入QML视图。

例如:

// main.qml
Item {
    id: main
    visible: true
    width: 200

    Column {
        ComboBox {
            model: ["Option 1", "Option 2", "Option 3"]
        }

        Slider {
        }
        Slider {
        }
        Slider {
        }
    }
}
// main.cpp
#include <QQuickWidget>

int main(int argc, char *argv[])
{

    QApplication app(argc, argv);


    QQuickWidget *view = new QQuickWidget;
    view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));

    QWidget* widget = new QWidget();
    QHBoxLayout* layout = new QHBoxLayout(widget);
    layout->addWidget(view);
    layout->addWidget(new QLabel("A classic widget"));

    widget->show();
    return app.exec();
}

enter image description here

答案 1 :(得分:0)

当您要在用户界面的那部分使用QML时,Romha Korev的答案是正确的。

另一个样式选项是使用样式表。参见Qt stylesheet reference

如果您难以在代码中设置小部件,请尝试Qt Designer

我使用这两个工具来使用Qt制作样式化的UI应用程序,并且非常方便