【问题标题】:Qml QtQuickControls2, change style properties at runtimeQml QtQuickControls2,在运行时更改样式属性
【发布时间】:2017-07-06 14:09:11
【问题描述】:

我应该在运行时设置 Material 样式的属性,例如当用户单击定义的按钮时更改主题值(亮/暗)。 我已经使用 qtquickcontrols2.conf 及其属性(主题、重音和主要)配置了 Material 样式。我无法导入 QtQuick.Controls.Materials 2.0,因为我不知道,但我正在使用 QtCreator 4.0.2 在 Ubuntu 上工作,并且未检测到 QtQuick.Controls.Materials 和 QtQuick.Controls.Universal 导入。 我的目标只是在运行时将材质风格的主题从浅色变为深色,反之亦然。如何集成此功能?感谢您的建议。

最好的问候 丹尼尔

【问题讨论】:

  • 您需要 Qt 5.7.0 才能使导入可用。您使用的是哪个 Qt 版本?

标签: qt qml material-design qtquick2 qtquickcontrols2


【解决方案1】:

我无法导入 QtQuick.Controls.Materials 2.0,因为我不知道,但我正在使用 QtCreator 4.0.2 在 Ubuntu 上工作,并且未检测到 QtQuick.Controls.Materials 和 QtQuick.Controls.Universal 导入.

您至少需要 Qt 5.7.0 才能使 Qt Quick Controls 2.0 导入可用。

我的目标只是在运行时将材质风格的主题从浅色变为深色,反之亦然。

你可以像这样在运行时切换主题:

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0

ApplicationWindow {
    id: window
    width: 200
    height: 200
    visible: true

    Material.theme: themeSwitch.checked ? Material.Dark : Material.Light

    Switch {
        id: themeSwitch
        text: "Dark"
        anchors.centerIn: parent
    }
}

【讨论】:

  • 我已经导入了(import QtQuick.Controls 2.0),但是没有检测到(import QtQuick.Controls.Material 2.0)(Qml 模块未找到)。我该如何解决? qt creator 上可能有一个错误。
  • 有效!谢谢
  • 我必须添加 'QQuickStyle::setStyle("Material");'在 C++ 代码中。您也可以在命令行上传递“-style Material”。还有其他几种设置方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多