Как не создавая объекта QPainter узнать тот шрифт, которым он будет выводить текст, если не вызывать setFont(). То есть как узнать «дефолтный» шрифт, который будет использовать QPainter при вызове QPainter::drawText()?
Пытаюсь определить размер виджета в пикселях, который зависит от количества текста на нём, для чего мне нужен шрифт, чтобы засунуть его в QFontMetrics.
#define FIXED_WIDTH 32
QPainter painter (this);
QFontMetrics fm( painter.font() ); // вот ради этого и создавался QPainter - нехорошо
QRect r = fm.boundingRect( 0, 0, FIXED_WIDTH, 1, Qt::AlignLeft | Qt::TextWordWrap, "Text text text text ..." );
std::cout << r.width() << ", " << r.height() << "\n";
Это работает, но этот код - ВНЕ функции paintEvent(), то есть создание QPainter здесь не совсем правильно. Но шрифт-то надо у кого-то попросить. Внутри paintEvent() весь этот код написать можно, но хочется там оставить только тупо-рисовательную часть, а не такую интеллектуальную, меняющуу состояние всего класса виджета.