【问题标题】:How do I change the background color of a QtQuick Window?如何更改 QtQuick 窗口的背景颜色?
【发布时间】:2016-01-31 12:12:46
【问题描述】:

我正在尝试创建一个简单的 QML 应用程序。 QML 文件很简单:

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

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

如何设置此无框架属性而不产生这些意外副作用?

【问题讨论】:

  • 你的意思是“取消注释掉一行”吗?

标签: c++ qt qml qtquick2


【解决方案1】:

我不确定为什么窗口对您显示为黑色。也许是因为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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    相关资源
    最近更新 更多