gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:40:37 33 4
gpt4 key购买 nike

向用户提供颜色选择反馈的最佳方式是什么?
我有一个带有“选择颜色”按钮的对话框,该按钮会弹出一个QColorDialog。选择完成后,我想向用户显示所选的颜色。
通常我使用 QLabel 并更改调色板中的背景颜色来执行此操作。这种方法比较麻烦,而且我认为不太便携。

有执行此操作的标准方法吗?

最佳答案

我的做法如下:

我实际上更改了按钮的颜色,以反射(reflect)用户的选择。为此,我使用 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(),这是我从代码项目文章中找到的方法:

//==============================================================================
// 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);
}

关于qt - 在Qt中显示颜色选择的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282938/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com