我用一个main.qml创建了一个简单的Qt快速应用程序,它类似于下面的代码.问题是窗口的背景颜色未设置为#ffffff,而是设置为浅灰色(Windows上我认为的窗口的默认颜色).矩形的颜色设置正确.
我在Windows上使用基于Qt 5.4.1的Qt Creator 3.3.1(opensource).
import QtQuick 2.4
import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.3
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
ApplicationWindow {
title: qsTr("Hello")
width: 200
height: 200
visible: true
color: "#FFFFFF"
Rectangle {
id: rectangle1
width: 100
height: 100
color: "#ffffff"
}
}
Run Code Online (Sandbox Code Playgroud) 有没有人能够在使用时热重新加载所有 QML 文件ApplicationWindow?我发现了一些例子,比如https://qml.guide/live-reloading-hot-reloading-qml/和https://www.slideshare.net/ICSinc/how-best-to-realize-a-runtime-reload -of-qml,但大多数情况下他们使用Loader并且ApplicationWindow需要作为根项目,这不起作用(没有窗口出现)只是重新加载所有QML内容。
我试过:
ApplicationWindow {
id: window
visibility: "FullScreen"
Shortcut {
sequence: "F5"
context: Qt.ApplicationShortcut
onActivated: {
window.close();
app.loadQml();
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
app我在 C++ 端设置的上下文属性在哪里,该函数执行以下操作:
void App::loadQml()
{
qml_engine_.clearComponentCache();
// Use "qrc:/Main.qml" for Qt Resource System.
// Use "Main.qml" for file system.
qml_engine_.load(QUrl(QStringLiteral("Main.qml")));
}
Run Code Online (Sandbox Code Playgroud)
这段代码只能工作一次,窗口消失并重新出现,但快捷方式只能工作一次而不能第二次......
任何想法如何实现这一点?
我想默认将我的应用程序设置为 180 度方向。在 ApplicationWindow 级别旋转屏幕的 API 是什么?我的应用程序中有工具栏和状态栏,因此我需要旋转 ApplicationWindow 本身。