当前位置:  开发笔记 > 编程语言 > 正文

在Qt中显示颜色选择的结果?

如何解决《在Qt中显示颜色选择的结果?》经验,为你挑选了1个好方法。

为用户提供颜色选择反馈的最佳方法是什么?
我有一个带有"选择颜色"按钮的对话框,弹出一个QColorDialog.选择完成后,我想向用户显示所选的颜色.
通常我使用a QLabel并在调色板中更改它的背景颜色.这种方法很麻烦,我认为不太便携.

有这样做的标准方法吗?



1> Jérôme..:

我这样做的方式如下:

我实际上改变了按钮的颜色,以反映用户的选择.要做到这一点,我正在使用Qt样式表,以确保它是可移植的:

const QString COLOR_STYLE("QPushButton { background-color : %1; color : %2; }");

QColor ChosenColor; // Color chosen by the user with QColorDialog
QColor IdealTextColor = getIdealTextColor(ChosenColor);
btnChooseColor->setStyleSheet(COLOR_STYLE.arg(ChosenColor.name()).arg(IdealTextColor.name()));

为了确保按钮的标签始终可读,我正在调用方法getIdealTextColor(),这是我从codeproject文章中找到的方法:

//==============================================================================
//  Nom : getIdealTextColor
//! @return an ideal label color, based on the given background color.
//! Based on http://www.codeproject.com/cs/media/IdealTextColor.asp
//==============================================================================
QColor JSPreferencesDlg::getIdealTextColor(const QColor& rBackgroundColor) const
{
    const int THRESHOLD = 105;
    int BackgroundDelta = (rBackgroundColor.red() * 0.299) + (rBackgroundColor.green() * 0.587) + (rBackgroundColor.blue() * 0.114);
    return QColor((255- BackgroundDelta < THRESHOLD) ? Qt::black : Qt::white);
}

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有