私は2つの数値(高評価と低評価)の比率を作ろうとしています。
結果はパーセント単位の数値です。次に、ラベルからの幅をそのパーセントに等しくしたいと考えています。
いいね100個と嫌い1個がある場合。嫌いなラベルを「いいね!」バーの幅の1%にしたいと思います。だから基本的にはYouTubeの評価システムが好きです。
画像の例:
しかし、ラベルの幅を設定する関数は見当たりません。だから私はこれをどのように行う必要がありますか、誰でも提案がありますか?
QLabel::setFixedWidth(int)
。より柔軟にするために(レイアウトの変更について心配する必要はありません)、QWidget
をサブクラス化し、2つの数値のスロットを追加し、paintEvent(..)
を再実装して2つのセクションを描画します。
うーん、私はただresize()メソッドを使用しています。たとえば、QLabelから実装された私のウィジェット:
BenchItem *itm=static_cast<BenchItem*>(widget);
itm->resize(this->width(),itm->height());
私は高さを変更する必要がないので、それ自体の高さを使用しますが、幅は親のwidth()により変更する必要があります。
QLabelの幅を動的に設定するために、setGeometry()メソッドを使用しました。フォームUiにqlabelがあります。
ui->qlabel->setGeometry(x, y, width, height);
QTのドキュメントを見ると、この要素には
"プレーンテキスト、リッチテキスト、ピクスマップ、映画、数値、または何もない"
これらの中で最も有望な「pixmap」には、必要な画像操作機能がないように見えますが、代わりに画像の表示に重点が置かれています。
http://qt-project.org/doc/qt-4.8/qpixmap.html
代わりに、CSSなど、棒グラフの問題に対するより軽量なソリューションを検討することをお勧めします。 2つのdiv要素を使用してこれを行う方法を次に示します。
http://www.1080degrees.net/archive/journal/simple_css_bar_graph/
結局のところ、画像の表示を好み、Gdライブラリを有効にしている場合は、おそらくこちらをご覧ください。