3

QLabelをサブクラス化してQVBoxLayoutに挿入していますが、サイズに問題があります。次のスクリーンショットは、私のアプリケーションが現在どのように見えるかを示しています。

ここに画像の説明を入力してください

上部の黄色のウィジェットは私QLabelので、レイアウトはデフォルトです。手動で設定せずにテキストに合わせてラベルを縮小したいのですsetMinimumHeight()が、ラベルの幅より長い文字列を使用することはできません。ドキュメントを確認しましたがQString(これはラベルのコンストラクターに渡しています)、テキストのサイズを抽出する方法が見つかりません。余分なスペースを使わずに、テキストに合わせてラベルのサイズを動的に変更する方法はありますか?

4

1 に答える 1

8

QFontMetricsはい、のを介してテキストの幅を見つけることができますQLabel。例えば:

QLabel *label = new QLabel("Text");
int w = label->fontMetrics().width(label->text());
qDebug() << Q_FUNC_INFO << w;
//in my case this results in 24px, so 6px per character.
于 2012-02-10T09:10:32.463 に答える