QML设置类型在我的应用程序中无效
我已决定使用QML设置类型在我的应用程序中无效,qml,qt5,qtquick2,Qml,Qt5,Qtquick2,我已决定使用Qt.labs.settings 1.0以以下方式保存窗口的状态: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Window 2.2 import Qt.labs.settings 1.0 ApplicationWindow { // Main configuration section for the application window id: mainwindow visi
Qt.labs.settings 1.0
以以下方式保存窗口的状态:
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Window 2.2
import Qt.labs.settings 1.0
ApplicationWindow {
// Main configuration section for the application window
id: mainwindow
visible: true // Needed if loading from c++.
property string accentchosen: "#F4511E"
height: Units.dp(600)
minimumHeight: Units.dp(500)
maximumHeight: Units.dp(1200)
width: Units.dp(800)
minimumWidth: Units.dp(300)
maximumWidth: Units.dp(1080)
Settings {
id: settings
property alias x: mainwindow.x
property alias y: mainwindow.y
property alias width: mainwindow.width
property alias height: mainwindow.height
property alias accentchosen: mainwindow.accentchosen
}
}
此代码将导致我的应用程序从上次打开的x
和y
位置开始,但其宽度和高度
似乎不符合其上次状态,而是保持为600
x800
根据第二次,以及之后的每一次,它都应该记住自己的状态。我做错什么了吗?你准备好了吗?即使文档中没有明确说明,也必须对设置进行持久化。这也可能是一个bug:它在我的OSX安装上运行得非常好。如果设置了应用程序标识符,它也可以在android和windows上运行。顺便问一下,这段代码真的有效吗?ApplicationWindow是控制模块的一部分,您似乎并没有导入它。@ddriver它必须在带有标识符的窗口上工作,是的。它在我的OSX中仍然有效,没有它们。在实现中可能会有一些不同。至于代码,我在编辑中漏掉了一行。OP没有在原始代码中添加任何导入。是的,伙计们,我没有添加包含,我的错。我正在使用papyros的qml材料设计模块,正如您所看到的(更准确地说,我正在测试),我认为全部原因是宽度和高度不是一个常量,而是由表达式单位给出的。dp
您设置了吗?即使文档中没有明确说明,也必须对设置进行持久化。这也可能是一个bug:它在我的OSX安装上运行得非常好。如果设置了应用程序标识符,它也可以在android和windows上运行。顺便问一下,这段代码真的有效吗?ApplicationWindow是控制模块的一部分,您似乎并没有导入它。@ddriver它必须在带有标识符的窗口上工作,是的。它在我的OSX中仍然有效,没有它们。在实现中可能会有一些不同。至于代码,我在编辑中漏掉了一行。OP没有在原始代码中添加任何导入。是的,伙计们,我没有添加包含,我的错。我正在使用papyros的qml材料设计模块(更准确地说,我正在测试),我认为全部原因是宽度和高度不是一个常量,而是由表达式单位给出的。dp