web-dev-qa-db-ja.com

Qlabelの幅を設定する

私は2つの数値(高評価と低評価)の比率を作ろうとしています。

結果はパーセント単位の数値です。次に、ラベルからの幅をそのパーセントに等しくしたいと考えています。

いいね100個と嫌い1個がある場合。嫌いなラベルを「いいね!」バーの幅の1%にしたいと思います。だから基本的にはYouTubeの評価システムが好きです。

画像の例: enter image description here

しかし、ラベルの幅を設定する関数は見当たりません。だから私はこれをどのように行う必要がありますか、誰でも提案がありますか?

15
user1633254

QLabel::setFixedWidth(int)。より柔軟にするために(レイアウトの変更について心配する必要はありません)、QWidgetをサブクラス化し、2つの数値のスロットを追加し、paintEvent(..)を再実装して2つのセクションを描画します。

27
cmannett85

うーん、私はただresize()メソッドを使用しています。たとえば、QLabelから実装された私のウィジェット:

BenchItem *itm=static_cast<BenchItem*>(widget);itm->resize(this->width(),itm->height());

私は高さを変更する必要がないので、それ自体の高さを使用しますが、幅は親のwidth()により変更する必要があります。

1
AlexBee

QLabelの幅を動的に設定するために、setGeometry()メソッドを使用しました。フォームUiにqlabelがあります。

ui->qlabel->setGeometry(x, y, width, height);
1
Gaurang

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ライブラリを有効にしている場合は、おそらくこちらをご覧ください。

http://php.net/manual/en/function.imagecreate.php

0
J Griffiths