V
Nov. 12, 2019, 12:49 p.m.

Стиль для QtQuick

Добрый день.

Есть ли другие способы установить стиль для QtQuick из PyQt5, кроме как либо прописывать в системной переменной или передать в качестве системного аргумента в таком виде:

sys_argv = sys.argv
sys_argv += ['--style', 'material']
app = QGuiApplication(sys_argv)
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
5

Добрый день.

Думаю, что да. Выбранный стиль можно подгружать при запуске программы. Во всяком случае, есть такой пример на C++ - Controls Gallery . И там есть такой код

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QSettings>
#include <QQuickStyle>
#include <QIcon>

int main(int argc, char *argv[])
{
    QGuiApplication::setApplicationName("Gallery");
    QGuiApplication::setOrganizationName("QtProject");
    QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QIcon::setThemeName("gallery");

    QSettings settings;
    QString style = QQuickStyle::name();
    if (!style.isEmpty())
        settings.setValue("style", style);
    else
        QQuickStyle::setStyle(settings.value("style").toString());

    QQmlApplicationEngine engine;
    engine.rootContext()->setContextProperty("availableStyles", QQuickStyle::availableStyles());
    engine.load(QUrl("qrc:/gallery.qml"));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}

Полагаю, что для Qt Quick должны быть привязки вот к этому

QQuickStyle::setStyle(settings.value("style").toString());

Возможно, что это будет выглядеть на Python как-то так

QQuickStyle.setStyle("material")

Но я не уверен, нужно проверять.

V

Добрый день.

Ну да, с С++ так можно :-) Но у PyQt5 нет аналога QQuickStyle.
В любом случае, вариант с установкой стиля через sys_argv работает, так что пусть так и остаётся.

Спасибо.

Я нашёл решение от разработчиков PyQt5 в списке рассылки.

os.environ['QT_QUICK_CONTROLS_STYLE'] = 'Material'

Попробуйте его ещё

V

Да, я про такой способ знаю :-) В своём вопросе я его и имел в виду, когда упомянул "либо прописывать в системной переменной".

Для моего приложения он не подходит, т.к. это не бекенд, а стэндэлаун-приложение и я не хочу привязываться к системному окружению клиента.

Спасибо за идеи.

Ну тогда не знаю )) Я большую часть времени на C++ с Qt работаю, а PyQt5 у меня боком. Так что, чем можем помочь ))

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

GS
Jan. 23, 2020, 3:04 p.m.
Galina Stepanіvna Shepeljuk

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:10points,
  • Rating points-10
GS
Jan. 23, 2020, 2:51 p.m.
Galina Stepanіvna Shepeljuk

C++ - Тест 003. Условия и циклы

  • Result:71points,
  • Rating points1
M
Jan. 23, 2020, 3:28 a.m.
Mitrider

C++ - Тест 003. Условия и циклы

  • Result:71points,
  • Rating points1
Last comments
Jan. 21, 2020, 1:12 p.m.
Docent

Полезная статья. Как всегда - то что надо. Добавлю ещё маленькую полезность - после установки tracer (88 строка) и перед выводом значений в lineEdit (91 строка) стоит добавить updatePositio…
Jan. 17, 2020, 1:31 a.m.
Andrej Jankovich

Выглядит как ошибка библиотеки. Расскажите подробно на какой платформе вы собираете проект (MinGW или MSVC) их версии и версии Qt.
D
Jan. 16, 2020, 11:06 a.m.
DENIZ1819

Доброго времени суток, не подскажите, что делать в данной ситуации, после того, как я сделал все вышеуказанные инструкции для подключения библиотеки к проекту?
Jan. 14, 2020, 4:33 a.m.
Evgenij Legotskoj

Рекомендую Wt, достаточно мощная вещь. Этот фреймворк может использоваться для написания сайтов на C++, либо можно использовать только отдельный компоненты, например только ORM. Но я не знаю, ка…
a
Jan. 14, 2020, 4:29 a.m.
ayb

Спасибо за инфу. Поиск качественной ORM привел меня только к sqlite_orm, но не подходит из-за необходимости полноценной поддержки c++14. Про framework Wt не слышал, спасибо за наводку.
Now discuss on the forum
Jan. 24, 2020, 1:37 a.m.
Evgenij Legotskoj

Не уверен. я бы попробовал выдернуть ссылки и забрать всё через QNetworkAccessManager, если вам не нужно запускать эти скрипты. Я с той ошибкой не сталкивался.
VZ
Jan. 23, 2020, 12:29 p.m.
Vladimir Zhitkovsky

Доброго дня! Вопрос как правильно удалять данные из модели сделанной таким образом: https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html пример с QObjectList-based Model. В плю…
Jan. 23, 2020, 11:54 a.m.
Intruder

Евгений, с удалением строк разобрался. Спасибо за помощь. Немного пришлось модернизировать код, но все получилось вроде.
Jan. 22, 2020, 5:06 a.m.
Pavel.K

Можете попробовать через Loader сделать, те cделать свой компонент ректангл с нужными вам полями и через Loader вызывать этот компонент , а через Connections прописать что ваш компонент отрисова…
Jan. 22, 2020, 3:25 a.m.
Pavel.K

Привет, кто-нибудь делал тестовый Json сервер , чтобы не просто через сокет ByteArray пересылать, а с клиента обрабатывать Post и get запросы? Буду очень признателен если у кого то есть пр…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB