Название: Подскажите, плиз, моя ошибка, или QFontMetrucs Отправлено: akorchagin от Март 01, 2006, 13:00 Здравствуйте, люди добрые.
Вопрос следующий. Работаю с Qt 4. Создаю класс - наследник QWidget. В PaintEvent пишу следующее:void WidFind::paintEvent(QPaintEvent *event) { QPainter painter(this); QFont font("Arial Cyr"); const int fontSize = 24; font.setPixelSize(fontSize); painter.setFont(font); QFontMetrics myFontMetrics = fontMetrics(); int widthOfString = myFontMetrics.width(f_text);//не работает //int widthOfString = myFontMetrics.width(f_text) * fontSize / 10;//работает int s = 0; for(int i = fontSize; i < height(); i += fontSize) { int p = s; while(p < width()) { painter.drawText(p, i, f_text); p += widthOfString; }; s -= 10; if (s < (-widthOfString)) s += widthOfString; }; } При этом текст на выводимой картинке перекрывается по горизонтали. Такое ощущение, что в качестве размер шрифта берется системный размер. В документации, вроде, должен браться установленный. Чья ошибка, моя или QFontMetrics? Если моя, то в чем? Название: Подскажите, плиз, моя ошибка, или QFontMetrucs Отправлено: Dendy от Март 01, 2006, 13:37 Дак. Для QPainter'а тьІ устанавливаешь шрифт QFont( "Arial Cyr", 24 ), а QFontMetrics берёшь из настроек окна. И удивляешься :-D
Строки будут рисоваться слитно, только если QFontMetrics будет ссьІлаться на шрифт, которьІм рисуют. Предполагаю, что тебе нужно делать так: Код: QFontMetrics myFontMetrics = painter.fontMetrics(); Название: Подскажите, плиз, моя ошибка, или QFontMetrucs Отправлено: akorchagin от Март 01, 2006, 15:44 Благодарю.
Понял свою ошибку. Я планировал в конструктор QFontMetrics передать QFont, но забыл. |