Я использую QGraphicsView для отображения случайно сгенерированных полигонов в QGraphicsScene, и все это работает отлично и денди, но теперь я хочу добавить пользовательский стиль пользовательского интерфейса в свое приложение, и это оказывается довольно раздражающим делать все вручную, в то время как есть так много замечательных вариантов, таких как QtQuick. Можно ли вообще использовать QtQuick или что-то подобное вместе с GraphicsView?
Краткое примечание: Я новичок в Qt, поэтому я могу упустить что-то очевидное здесь!
Обновлено:
Добавлено изображение для пояснения, я просто хочу изменить ползунки и кнопки, чтобы они имели собственную текстуру!
Спасибо за быстрый ответ! Я добавил изображение для пояснения. Я хочу изменить ползунки и т. д. с левой стороны, чтобы иметь собственную текстуру! Если я правильно понял, вы советуете мне поместить их в отдельный виджет и отредактировать этот виджет с помощью QML/QtQuick?
Используйте класс QQuickWidget
для встраивания представления QML в виджеты Qt.
Например:
// 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();
}
Ответ Ромхи Корева верен, если вы хотите использовать QML для этой части пользовательского интерфейса.
Другой вариант стилизации — использование таблиц стилей. См. Справочник по таблицам стилей Qt
Если вам неудобно настраивать виджеты в коде, попробуйте Qt-дизайнер.
Я использую эти 2 инструмента для создания стилизованных UI-приложений с помощью Qt и нахожу их очень удобными.
Добро пожаловать на stackoverflow.com! - Это зависит от того, как вы хотите, чтобы ваш пользовательский интерфейс выглядел. Эскиз очень поможет улучшить ваш вопрос. Вот несколько подсказок: Вы можете просто добавить виджеты вокруг вашего QGraphicsView в тот же макет. Если вы используете QML, вы можете добавить туда свои элементы управления. Вы даже можете наложить на вид виджеты, хотя это не идеально. Вы можете использовать
QGraphicsWidget
для размещения потомков QWidget в QGraphicsScene (хотя это немного уродливо).