Unsolved Why i can't change color of QString?
-
Thanks @raven-worx && @mrjj for help. It is like 8-times more code now, i can't rly understand why it don't work with simple QStringListModel, but it is at least some success today.
It change color in list of ComboBox, but not in actual CB, in @mrjj screenshot such thing also present:
P.S. in my initial priority was to display colored in mainWidget of ComboBox rather then in opened list.
-
Hi
- i can't rly understand why it don't work with simple QStringListModel
Well @raven-worx was kind enough to show the source
so we can see how QStringListModel worksQVariant QStringListModel::data(const QModelIndex &index, int role) const { if (index.row() < 0 || index.row() >= lst.size()) return QVariant(); if (role == Qt::DisplayRole || role == Qt::EditRole) return lst.at(index.row()); return QVariant(); }
The data function of a model IS the place where it returns the data for the roles so we can see
it only really uses (role == Qt::DisplayRole || role == Qt::EditRole) and
we want it to also use Qt::ForegroundRole. -
I made a proxy model to support roles in models that don't https://github.com/VSRonin/QtModelUtilities the class is called
RoleMaskProxyModel
. Here is an example that uses it to colourQStringListModel
: https://github.com/VSRonin/QtModelUtilities/blob/1.0.0/examples/exam_RoleMaskProxyModel/exam_rolemaskhighlight.cppHopefully I'll eventually find the time to complete adding that class to Qt: https://codereview.qt-project.org/#/c/245572/ -
@VRonin Looks very interesting.
I downloaded your rolemaskproxymodel and classes related to it(whole src directory), but when i tried to Run i got such strange stuff:
Oh and don't look at first two errors, they unrelated completelly, it appears when i swap compiler to Release mode, did'nt figure out what it is yet. -
If you just copy-paste the code you have to add
DEFINES += MODELUTILITIES_STATIC
to your .pro file -
@VRonin ye, first time tried to use someone elses code :D
Now i downloaded whole stuff like a normal person. Look at my post with screenshot above. -
Exact same answer.
There's a section in the readme that explains how to use the library: https://vsronin.github.io/QtModelUtilities/md__i_n_s_t_a_l_l.html -
@VRonin I added that macro to .pro file and nothing changed, same 4 errors.
-
You have to manually click on build-> rerun qmake every time you change something in the .pro file
-
@VRonin of course i did that. Still same 4 errors
-
let's do it manually then: remove all the
MODELUTILITIES_EXPORT
-
@VRonin said in Why i can't change color of QString?:
MODELUTILITIES_EXPORT
How? you mean edit your src files?
-
yep!
AllDEFINES += MODELUTILITIES_STATIC
does is transformingMODELUTILITIES_EXPORT
into an empty string. if that doesn't work then just manually do a find and replace -
@VRonin oKay. In what files that stuff which i should to replace? I only can assume that such stuff MODELUTILITIES_EXPORT is macro, so it must be in some .h files, right?
-
Actually, it probably just easier to replace the entire
modelutilities_global.h
with#ifndef modelutilities_global_h__ #define modelutilities_global_h__ #define MODELUTILITIES_EXPORT #endif // modelutilities_global_h__
-
@VRonin Done. But still that four errors(
-
-
@SGaist said in Why i can't change color of QString?:
Did you build @VRonin library statically ?
@SGaist said in Why i can't change color of QString?:
Do you mean the symbol missing error ?
I tried multiple times: Build>Clean all>Run qmake>Rebuild all.
-
Do you have a .dll file matching that library ?
-
@SGaist What .dll? I just downloaded src folder, did'nt saw any dll in there