2016-12-09 1 views
0

こんにちはQGraphicsSceneでテキストフォントを小さくしたいと考えています。私はこれを試してみてください。QGraphicsSceneでテキストサイズを変更するには?

QFont * f = new QFont; 
f->setPointSize(7); 
tt->setFont(f); 

はしかし、私はこれを取得:

error: C2664: 'void QGraphicsTextItem::setFont(const QFont &)' : cannot convert argument 1 from 'QFont *' to 'const QFont &' Reason: cannot convert from 'QFont *' to 'const QFont' No constructor could take the source type, or constructor overload resolution was ambiguous

あなたは私を助けることができますか?

+0

が値を優先します。現代のC++に 'new'を書いたのであれば、それは正当な理由があった方が良いでしょう。 –

答えて

0

オブジェクトを取得するためにポインタをderefenceする必要があります。その後setFontは、このオブジェクトを操作できます。

tt->setFont(*f); 

は、明示的にdeletefすることを忘れないでください。 C++ 11にアクセスできない場合は、newの生ポインタの代わりにstd::unique_ptrを使用することをお勧めします。

いっそのこと、あなたがスコープのf外を使用する必要がないならば、単にローカルオブジェクトを作成:

QFont f; 
f->setPointSize(7); 
tt->setFont(f); 
+0

'QFont'は安価なコピーを持つバリュークラスです。あなたがヒープ上にそれを割り当てているなら、あなたは何か間違ったことをしている可能性が高く、スコープはそれと関係がありません。 –

関連する問題