2016-01-31 1 views
2

Я пытаюсь создать простое приложение QML. Файл QML очень прост:Как изменить цвет фона окна QtQuick?

import QtQuick 2.2 
import QtQuick.Window 2.1 

Window { 
    id: root 
    objectName: "window" 
    visible: true 
    width: 800 
    height: 480 
    color: "#16FF16" 
} 

Я использую следующий код C++:

QApplication app(argc, argv); 
QQmlApplicationEngine engine; 
engine.load(QUrl("qrc:/qml/main.qml")); 
QObject *topLevel = engine.rootObjects().value(0); 
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel); 
//window->setFlags(Qt::Widget|Qt::FramelessWindowHint); 
window->show(); 
return app.exec(); 

Это показывает окно штраф и цвет фона немного зеленый, как и ожидалось. Однако, как только я раскомментирую линию:

window->setFlags(Qt::Widget|Qt::FramelessWindowHint); 

Окно всегда отображается как черный сейчас!

Как установить это бескаркасное свойство без этих непреднамеренных побочных эффектов?

+0

ли вы имеете в виду «раскомментировать из строки»? – iBelieve

ответ

2

Я не уверен, почему окно отображается черным для вас. Возможно, это из-за флага Qt::Widget.

Однако это работает и на самом деле проще, так как он сохраняет весь код UI в QML:

import QtQuick 2.2 
import QtQuick.Window 2.1 

Window { 
    id: root 
    objectName: "window" 
    visible: true 
    width: 800 
    height: 480 
    color: "#16FF16" 

    // Set the flag directly from QML 
    flags: Qt.FramelessWindowHint 
} 
+0

Это сделало трюк. Благодаря! – Luca

 Смежные вопросы

  • Нет связанных вопросов^_^