如何更改QtQuick窗口的背景颜色?

3

我将尝试创建一个简单的QML应用程序。QML文件非常简单:

import QtQuick 2.2
import QtQuick.Window 2.1

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

I'm using the following C++ code:

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);

窗口现在总是显示为黑色!

我该如何设置无边框属性而不产生这些意外的副作用?


你的意思是“取消注释该行代码”吗? - iBelieve
1个回答

5
我不确定为什么您的窗口显示为黑色。可能是因为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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接