Russian Qt Forum

Qt => Общие вопросы => Тема начата: Germiona от Апрель 04, 2008, 10:42



Название: Как записать информацию о шрифте?
Отправлено: Germiona от Апрель 04, 2008, 10:42
Есть такие функция QFont::toString(). Как с ее помощью можно записать информацию о шрифте? Параметры шрифта задаются пользовательские,в частности нужна ширина и высота


Название: Re: Как записать информацию о шрифте?
Отправлено: ритт от Апрель 04, 2008, 11:12
Код:
QString QFont::toString() const
{
    const QChar comma(QLatin1Char(','));
    return family() + comma +
        QString::number(     pointSizeF()) + comma +
        QString::number(      pixelSize()) + comma +
        QString::number((int) styleHint()) + comma +
        QString::number(         weight()) + comma +
        QString::number((int)     style()) + comma +
        QString::number((int) underline()) + comma +
        QString::number((int) strikeOut()) + comma +
        QString::number((int)fixedPitch()) + comma +
        QString::number((int)   rawMode());
}

чего конкретно не хватает?


Название: Re: Как записать информацию о шрифте?
Отправлено: Germiona от Апрель 04, 2008, 12:18
Не хватает параметра "ширины шрифта". Вообще ситуация такая: при изменении окна (QTextEdit) необходимо,чтобы шрифт текста тоже изменялся пропорционально изменению окна...


Название: Re: Как записать информацию о шрифте?
Отправлено: Mikhail от Апрель 04, 2008, 14:43
Не хватает параметра "ширины шрифта". Вообще ситуация такая: при изменении окна (QTextEdit) необходимо,чтобы шрифт текста тоже изменялся пропорционально изменению окна...

Как не хватает?
А что же тогда:
int QFont::weight () const


Название: Re: Как записать информацию о шрифте?
Отправлено: Germiona от Апрель 11, 2008, 10:21
Цитировать
А что же тогда:
int QFont::weight () const

Это толщина букв,а не ширина


Название: Re: Как записать информацию о шрифте?
Отправлено: Mikhail от Апрель 11, 2008, 11:18
Цитировать
А что же тогда:
int QFont::weight () const

Это толщина букв,а не ширина

Ну тогда

QFontMetrics fm( const QFont & font ) ;
int w = fm.width ( QChar ch )  ;


Вариантов много


Название: Re: Как записать информацию о шрифте?
Отправлено: Germiona от Апрель 11, 2008, 16:40
Цитировать
Ну тогда

QFontMetrics fm( const QFont & font ) ;
int w = fm.width ( QChar ch )  ;


Подобным образом я получу всего лишь информацию о ширине символа,а мне необходимо ее задать...

Более того, чтобы получить информацию придется установить этот шрифт в виджете:
Код:
w->setFont(font);
что мне совсем не нужно....

Может быть можно как-то узнать о метриках шрифта,не устанавливая этот шрифт в виджете?