Использование QML с типом интерфейса виджетов qt? - PullRequest
0 голосов
/ 27 февраля 2019

Итак, я хотел бы создать приложение, которое выглядит примерно так:

click here

Что это приложение делает, я могу выбирать фигуры через поле со списком слева и поместитьих на Районе справа.С помощью слайдера я могу варьировать размеры.Флажки выбирают границу или делают форму имеющей цвет заливки.

Моя проблема в том, что я хотел бы создать эти формы с помощью QML, поскольку такие базовые формы относительно легко создавать с помощью прямоугольника, круга и т. Д.,однако я также хотел бы, чтобы красивый интерфейс был виден слева.Это возможно только с QML или мне нужно интегрировать QML в qtwidgets или что-то в этом роде?Я знаю, что в QML также есть ползунок и кнопка, которые выглядят отлично, но мне бы хотелось иметь четкую область справа, которая указывает пользователю, где он может создавать фигуры и пользовательский интерфейс слева.Какой правильный подход здесь?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Для рисования части вашего приложения, использование QGraphicsScene https://doc.qt.io/qt-5/qgraphicsscene.html также может быть альтернативой, чтобы остаться с Qt Widget вместо того, чтобы смешивать его с QML.

Но если вы хотите придерживатьсяс QML вы можете посмотреть на QQuickView https://doc.qt.io/qt-5/qquickview.html и вот небольшой пример интеграции:

#include <QQuickView>
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // ..

    QQuickView *view = new QQuickView;
    QWidget *container = QWidget::createWindowContainer(view, this);

    // some set up if needed
    container->setMinimumSize(1280, 600);
    container->setMaximumSize(1280, 600);
    container->setFocusPolicy(Qt::TabFocus);

    // ..

    view->setSource(QUrl("main.qml"));
    view->setResizeMode(QQuickView::SizeViewToRootObject);

    ui->verticalLayout->addWidget(container);

    // ..

}
0 голосов
/ 27 февраля 2019

Я настоятельно рекомендую использовать QML для всего пользовательского интерфейса.Во-первых, Qt Quick и QWidgets - совершенно разные движки пользовательского интерфейса.Я считаю, что пользовательский интерфейс на основе разметки легче контролировать, настраивать и вообще работать с ним.Кроме того, Qt Quick и QML - лучшая среда пользовательского интерфейса, которую я когда-либо использовал, и их было много.Вы можете легко сделать все, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...