Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QGraphicsSimpleTextItem: не назначается Pen


Автор: avn 31.10.2013, 13:47
Доброго времени суток!

У меня стоит Qt 5.1.1, VS9. В весьма простой программе не устанавливается цвет кисти для текста, хотя заливка есть и текст выводится на экран. Это глючит у меня в голове, в компьютере или у разработчиков Qt   smile  ???

Код


#include <QtWidgets>

int main (int argc, char *argv[])
{
    QApplication a (argc, argv);
    QGraphicsScene scene;

    QGraphicsSimpleTextItem *txt = new QGraphicsSimpleTextItem;
    txt->setBrush (QBrush ("red"));
    txt->setText ("Test");
    txt->setFont (QFont ("Arial", 50));
    txt->setPen (QPen (QColor ("blue"), 3));
    scene.addItem (txt);

    QGraphicsView view (&scene);
    view.show ();

    return a.exec ();
}


Автор: Amp 31.10.2013, 14:05
https://bugreports.qt-project.org/browse/QTBUG-33475

Автор: avn 31.10.2013, 16:48
Цитата(Amp @ 31.10.2013,  14:05)
https://bugreports.qt-project.org/browse/QTBUG-33475

За ссылку спасибо, но что делать - я так и не понял...

Автор: avn 31.10.2013, 17:27
Гы... Решил проблему следующим образом:

1) из https://bugreports.qt-project.org/browse/QTBUG-33475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel я узнал, что https://bugreports.qt-project.org/secure/ViewProfile.jspa?name=andysh сделал https://codereview.qt-project.org/#patch,sidebyside,65630,1,src/gui/text/qtextengine.cpp: в файле src/gui/text/qtextengine.cpp было так:

строка 2208:
Код

QTextCharFormat QTextEngine::format(const QScriptItem *si) const
{
    if (const QTextFormatCollection *formats = this->formats())
        return formats->charFormat(formatIndex(si));
    return QTextCharFormat();
}


а должно быть так:

Код

QTextCharFormat QTextEngine::format(const QScriptItem *si) const
{
    resolveAdditionalFormats();        // *****************************************
    if (const QTextFormatCollection *formats = this->formats())
        return formats->charFormat(formatIndex(si));
    return QTextCharFormat();
}


2) я внес исправление у себя

3) собрал командой nmake Qt заново (в минуту уложился  smile !)

Заработало !

Мораль: думаю, к следующему релизу они исправят этот баг, а пока приходится вот так вот...

Автор: bsa 1.11.2013, 15:15
Цитата(avn @  31.10.2013,  18:27 Найти цитируемый пост)
Мораль: думаю, к следующему релизу они исправят этот баг, а пока приходится вот так вот... 
готовится кандидат в релизы 5.2. А багу еще назначен ответственный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)