ColorDialog QML Type

本机颜色对话框更多

Import Statement: import Qt.labs.platform
Inherits:

Dialog

Status: Deprecated since 6.9

自 Qt.labs.platform 6.9 起,该类型已被弃用。我们强烈建议不要在新代码中使用它。

属性

详细说明

使用QtQuick.Dialogs::ColorDialog 代替。

ColorDialog 类型为本地平台颜色对话框提供了 QML API。

要显示颜色对话框,只需构建一个 ColorDialog 实例,设置所需的属性,然后调用open() 即可。currentColor 属性可用于确定对话框中当前选择的颜色。只有在接受对话框做出最终选择后,才会更新color 属性。

MenuItem {
    text: "Color"
    onTriggered: colorDialog.open()
}

ColorDialog {
    id: colorDialog
    currentColor: document.color
}

MyDocument {
    id: document
    color: colorDialog.color
}

可用性

本机平台颜色对话框目前在以下平台上可用:

  • iOS
  • Linux(使用 GTK+ 平台主题运行时)
  • MacOS

在没有本机实现的平台上,Qt Labs Platform 模块使用Qt Widgets 作为备用。因此,使用Qt Labs Platform 模块中类型的应用程序应链接到 QtWidgets 并使用QApplication 而不是QGuiApplication

要链接 QtWidgets 库,请在 qmake 项目文件中添加以下内容:

QT += widgets

main() 中创建QApplication 的实例:

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

注意: Qt.labs 模块中的类型不保证在未来版本中保持兼容。

另请参阅 QtQuick.Dialogs::ColorDialog

属性文档

color : color

该属性保存最终接受的颜色。

currentColor 属性不同,color 属性不会在用户在对话框中选择颜色时更新,而只会在最终选择完成后更新。也就是说,当用户点击OK 接受一种颜色时,才会更新该属性。或者,也可以处理accepted() 信号来获取最终选择。

另请参阅 currentColoraccepted()。


currentColor : color

该属性保存对话框中当前选择的颜色。

color 属性不同,currentColor 属性会在用户在对话框中选择颜色时更新,甚至在做出最终选择之前。

另请参阅 color


options : flags

该属性包含影响对话框外观的各种选项。

默认情况下,所有选项都被禁用。

应在显示对话框之前设置选项。如果在对话框可见时设置这些选项,则不能保证会立即对对话框产生影响(取决于选项和平台)。

可用选项

常量说明
ColorDialog.ShowAlphaChannel允许用户选择颜色的 alpha 分量。
ColorDialog.NoButtons不显示OKCancel 按钮(对 "实时对话框 "有用)。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.