webentwicklung-frage-antwort-db.com.de

Qlabel Breite einstellen

Ich versuche, ein Verhältnis zwischen zwei Zahlen (Vorlieben und Abneigungen) herzustellen.

Das Ergebnis ist eine Zahl in Prozent. Dann möchte ich, dass die Breite des Etiketts diesem Prozent entspricht.

Also, wenn es 100 Likes und 1 Abneigung gibt. Ich möchte das Abneigungsetikett um 1 Prozent so breit machen wie der ähnliche Balken. So wie das Youtube-Bewertungssystem.

Beispielbild: enter image description here

Ich sehe jedoch keine Funktion, um die Breite des Etiketts einzustellen. Wie muss ich das machen, hat jemand Vorschläge?

12
user1633254

QLabel::setFixedWidth(int). Um es flexibler zu machen (ich muss mich nicht um Layouts kümmern, die die Dinge ändern), würde ich QWidget subclassieren, Slots für die beiden Zahlen hinzufügen und paintEvent(..) erneut implementieren, um die beiden Abschnitte zu zeichnen.

24
cmannett85

Hm, ich verwende nur die resize () -Methode. Zum Beispiel mein Widget, das von QLabel implementiert wurde:

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

ich brauche keine Höhe ändern, damit es sich selbst Höhe verwendet, aber die Breite sollte sich aufgrund der Breite der Eltern ändern ().

1
AlexBee

Ich habe die setGeometry () -Methode verwendet, um die QLabel-Breite dynamisch festzulegen. Ich habe Qlabel in Form Ui.

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

In der QT-Dokumentation kann dieses Element nur enthalten

"Nur Text, Rich Text, A Pixmap, A Movie, A Number oder Nothing"

die vielversprechendste dieser Funktionen, "pixmap", scheint nicht die Bildbearbeitungsfunktion zu haben, die Sie benötigen würden. Stattdessen geht es mehr um das Anzeigen von Bildern:

http://qt-project.org/doc/qt-4.8/qpixmap.html

Ich würde stattdessen nach leichteren Lösungen für Ihr Balkendiagrammproblem wie CSS suchen. Hier ist eine Möglichkeit, dies mit zwei div-Elementen zu tun:

http://www.1080degrees.net/archive/journal/simple_css_bar_graph/

Wenn Sie es vorziehen, ein Bild anzuzeigen, und Gd-Bibliotheken aktiviert haben, schauen Sie sich vielleicht hier an:

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

0
J Griffiths