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:
Ich sehe jedoch keine Funktion, um die Breite des Etiketts einzustellen. Wie muss ich das machen, hat jemand Vorschläge?
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.
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 ().
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);
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: