[Interest] Text rendering problem.

william.crocker at analog.com william.crocker at analog.com
Tue Jul 21 19:31:08 CEST 2015


On 07/18/2015 08:02 PM, william.crocker at analog.com wrote:
>
>>>>
>>>> I am having a text rendering problem.
>>>
>>>>    From some googling, I think it's because the hinting values are
>>> obtained when unscaled, and then used even when scaled.
>>>
>>> What you can do in your example is
>>>
>>>       scene_font.setHintingPreference(QFont::PreferNoHinting);
>>>
>>
>> Elvis:
>>
>> You are the mam. That fixed it.
>>
>
> Just shoot me.
> That fixed the problem on Linux,
> but I still see the problem on Windows.
> It's off to Google I go.
>

It appears that one needs to use the DirectWrite text rendering
system on Windows.

So, I configured with -directwrite which causes some Qt source
files to #include "dwrite.h", which is good, but the only
dwrite.h I can find appears to be a C# binding (because it uses
the interface keyword.)

Has anyone successfully built Qt on Windows with -directwrite ?

Thanks.

Bill

>> I forgot the most import rule of software engineering in the 21st century:
>>
>> "No matter how obscure the problem, you are not the first to encounter it.
>>     Others have come before you, solved the problem and those solutions are
>>     there for all to see if you Google the right subject."
>>
>> Bill
>>
>>>> Bill
>>>>
>>>> -------------------------
>>>> int
>>>> main( int argc, char **argv ) {
>>>>         QApplication app(argc,argv);
>>>>
>>>>         int sz = 6, scale = 10;
>>>>         QString text = QString("Impedance");
>>>>
>>>>         // Text size is 60.
>>>>         // This text renders well.
>>>>         QFont label_font = QFont("Arial",scale*sz,QFont::Bold);
>>>>         QLabel *label = new QLabel(text);
>>>>         label->setFont(label_font);
>>>>
>>>>         // Text size is 6, then the view is zoomed in x10.
>>>>         // This text is not properly kerned.
>>>>         QFont scene_font = QFont("Arial",sz,QFont::Bold);
>>>>         QTextDocument *html = new QTextDocument;
>>>>         html->setDefaultFont(scene_font);
>>>>         html->setHtml(text);
>>>>         QGraphicsTextItem *gi = new QGraphicsTextItem;
>>>>         gi->setDocument(html);
>>>>         QGraphicsScene *sp = new QGraphicsScene;
>>>>         sp->addItem(gi);
>>>>         QGraphicsView *view = new QGraphicsView;
>>>>         view->setScene(sp);
>>>>         view->scale(scale,scale);
>>>>
>>>>         QHBoxLayout *hbox = new QHBoxLayout;
>>>>         hbox->addWidget(label);
>>>>         hbox->addWidget(view);
>>>>
>>>>         QWidget *wp = new QWidget;
>>>>         wp->setLayout(hbox);
>>>>         wp->show();
>>>>
>>>>         app.exec();
>>>> }
>>>> _______________________________________________
>>>> Interest mailing list
>>>> Interest at qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/interest
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>



More information about the Interest mailing list