J'essaie de faire un ratio entre 2 chiffres (j'aime et je n'aime pas).
Le résultat est un nombre en pourcentage. Ensuite, je veux que la largeur de l'étiquette soit égale à ce pourcentage.
Donc, s'il y a 100 goûts et 1 ne pas aimer. Je veux que l’étiquette d’aversion ait 1% de la largeur de la barre similaire. Donc, fondamentalement, comme le système de notation youtube.
Exemple d'image:
Mais je ne vois aucune fonction permettant de définir la largeur de l'étiquette. Alors, comment dois-je procéder, quiconque a des suggestions?
QLabel::setFixedWidth(int)
. Bien que pour le rendre plus flexible (ne pas avoir à vous soucier des mises en page qui changent des choses), je sous-classe QWidget
, ajouter des emplacements pour les deux nombres et réimplémenter paintEvent(..)
pour dessiner les deux sections.
Hm, j'utilise seulement la méthode resize (). Par exemple, mon widget, implémenté à partir de QLabel:
BenchItem *itm=static_cast<BenchItem*>(widget);
itm->resize(this->width(),itm->height());
je n'ai pas besoin de changer de hauteur, donc il utilise lui-même la hauteur, mais la largeur devrait changer en raison de la largeur des parents ().
J'ai utilisé la méthode setGeometry () pour définir dynamiquement la largeur de QLabel. J'ai qlabel dans le formulaire Ui.
ui->qlabel->setGeometry(x, y, width, height);
En regardant la documentation QT, cet élément ne peut contenir que
"Texte brut, Texte enrichi, Un pixmap, Un film, Un nombre ou Rien"
"Pixmap", le plus prometteur d'entre eux, ne semble pas disposer de la fonctionnalité de manipulation d'images dont vous auriez besoin, mais plutôt d'une fonction d'affichage d'images:
http://qt-project.org/doc/qt-4.8/qpixmap.html
Au lieu de cela, je suggérerais de rechercher des solutions plus légères pour votre problème de graphique à barres, comme CSS. Voici un moyen de faire cela en utilisant deux éléments div:
http://www.1080degrees.net/archive/journal/simple_css_bar_graph/
Après tout, si vous préférez afficher une image et activer les bibliothèques Gd, consultez peut-être ici: