I need to draw an image of a spin box. Really, draw the image, I can't use a
QSpinBox widget.
So I'm using QStyle:: drawComplexControl() with QStyle::CC_SpinBox. This works
well, up to a point.
Now I am ready to size it to fit what I want to put into the control's edit
field, which may use various fonts, etc. For this it seems logical to use
QStyle:: sizeFromContents(). For the QSize field I used the obvious thing: the
size of the bounding box for the text. That didn't work at all- the returned
size is actually smaller in height than the input contentsSize parameter.
So I looked at the sizeHint() function for the QAbstractSpinBox widget. I was
astounded to find quite a lot of code with hard-coded constants, the use of
QLineEdit::sizeHint(), computations on the font metrics, two calls to
subControlRect(QStyle::CC_SpinBox, &opt, QStyle::SC_SpinBoxEditField ...), the
second one with the comment:
// get closer to final result by repeating the calculation
Why is this so complicated? I could never come up with the complex heuristic
used for QAbstractSpinBox.
Is that really what needs to be done? Is there something more obvious that I
can do? I suppose I could just copy the code, or even create a dummy QSpinBox
just for the purpose of calling sizeHint(), but that is very unsatisfying.
Is there a better approach?
Thanks in advance!
-John Weeks
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest