[SOLVED] Reading QColor from an INI file
-
[quote author="Subst27" date="1421079781"]can you wait some minutes?[/quote]
Of course
-
@QSettings settings(qApp->applicationDirPath()+"/color.ini",QSettings::IniFormat);
QColor color;
settings.beginGroup("common");
QString string=settings.value("color","#0000FF").toString();
qDebug()<<string;
string.remove(0,1);
bool ok;
uint value=string.toUInt(&ok,16);
qDebug()<<value;
color=QColor::fromRgb(value);
qDebug()<<color;@ -
[quote author="Andre" date="1421081171"]I'd add a bit more checking of the input. Before removing the first character, check if it actually is a # sign. And check if the length of the rest is what you expect (6 characters for a 3x8bit color).[/quote]
well.
I've just wrote the principal solve -
[quote author="Andre" date="1421081171"]I'd add a bit more checking of the input. Before removing the first character, check if it actually is a # sign. And check if the length of the rest is what you expect (6 characters for a 3x8bit color).[/quote]
Thanks as always @Andre and especially thanks to @Subst27! I will mark this Solved for now but will need to refine it a bit
-
[quote author="Subst27" date="1421081450"]
[quote author="Andre" date="1421081171"]I'd add a bit more checking of the input. Before removing the first character, check if it actually is a # sign. And check if the length of the rest is what you expect (6 characters for a 3x8bit color).[/quote]well.
I've just wrote the principal solve[/quote]Yes, of course. But reading an ini file is essentially user imput, so I think input checking should not be just an afterthought. That's why I mentioned it.
-
I just wanted to add what I think is a better solution - at least for me. The issue was centered around the proper forming of the key in the input file which if not done correctly yielded a Invalid color status for the QColor. I went back to reading the value in as a number - not a string.
@
[Testing]
MarkerColor=#800000
@and in code:
@
m_MarkerColor = IniSettings.value("Testing/MarkerColor").value<QColor>();
@Sincere thanks to all who have assisted and contributed.