Фон строки заголовка qml - PullRequest
       11

Фон строки заголовка qml

0 голосов
/ 25 апреля 2018

Как я могу изменить фон и значок на этой строке заголовка в qml?

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Это зависит от того, как именно выполняется ваш графический интерфейс.

Что касается значка, самый простой и последовательный способ его установки - через QGuiApplication :: windowIcon . Это установит значок для всех окон и диалогов приложения:

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    app.setWindowIcon(QIcon(":/MyAppIcon.png"));
    QQmlApplicationEngine engine;
    engine.load(QUrl("qrc:/main.qml"));
    // ...

Для заголовка окна, если вы используете Window или ApplicationWindow, взгляните на свойство Window :: title , например ::

import QtQuick 2.0
import QtQuick.Controls 2.2

ApplicationWindow {
    width: 800
    height: 600
    title: qsTr("Hello World")
}

Обновление: Если вам нужно больше настроек, таких как изменение цвета фона строки заголовка, то вам придется использовать собственные средства платформы для этого. Я предполагаю, что это связано с тем, что такие вещи сильно зависят от платформы и даже могут быть невозможны в некоторых системах, поэтому Qt не предоставляет API для таких задач.

Вы можете попытаться получить дескриптор окна платформы QQuickWindow (который является QWindow), используя QWindow :: winId и использовать, например, Windows API для рисования. Здесь - аналогичный пост, который вы можете посмотреть, чтобы начать.

Однако имейте в виду, что это означает, что вы должны внедрить в свой проект код для конкретной платформы, поэтому лучше оберните его, если Windows - не единственная цель для вашего приложения.

Альтернативой может быть запрос на создание окна полностью без системной строки заголовка. Чем вы можете нарисовать пользовательскую строку заголовка полностью в QML. Однако это означает, что вам придется «воссоздать» строку заголовка окна Windows и - если это необходимо - также сделать то же самое для других ОС, на которых вы хотите запустить свое приложение (или жить с тем фактом, что приложение выглядит «чужим» "на не Windows). Тем не менее, это может восприниматься как плохое пользователями, которые предпочитают иметь единообразный внешний вид для всех приложений.

0 голосов
/ 25 апреля 2018

как запускается ваше qml-приложение?вы ничего не сможете сделать, если вы запустите его через qmlscene.

, но если вы создадите свое собственное приложение с помощью подкласса QQuickView, то у вас будет полный набор API (http://doc.qt.io/qt-5/qquickview-members.html):

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