Установить ширину Qlabel
Я пытаюсь сделать соотношение между двумя номерами (симпатиями и антипатиями).
В результате получается число в процентах. Затем я хочу сделать ширину с метки равной проценту.
Итак, если есть 100 симпатий и 1 неприязнь. Я хочу, чтобы не понравилась метка на 1% ширины аналогичного бара. Таким образом, в основном, как система оценки youtube.
Пример изображения:
![enter image description here]()
Но я не вижу никакой функции, чтобы установить ширину метки.
Итак, как мне это сделать, у кого есть предложения?
Ответы
Ответ 1
QLabel::setFixedWidth(int)
. Хотя для того, чтобы сделать его более гибким (не нужно беспокоиться о смене макетов), я бы подклассифицировал QWidget
, добавил слоты для двух чисел и переопределял paintEvent(..)
, чтобы нарисовать два раздела.
Ответ 2
Hm, я просто использую метод resize().
Например, мой виджет, реализованный из QLabel:
BenchItem *itm=static_cast<BenchItem*>(widget);
itm->resize(this->width(),itm->height());
Мне не нужна высота изменения, поэтому он использует высоту, но ширина должна меняться из-за родителей width().
Ответ 3
Я использовал метод setGeometry() для динамической установки ширины QLabel.
У меня есть qlabel в форме Ui.
ui->qlabel->setGeometry(x, y, width, height);
Ответ 4
В документации QT этот элемент может содержать только
"Обычный текст, Rich Text, Растровая карта, фильм, число или ничего"
где наиболее перспективные из них, "pixmap", похоже, не имеют функциональности манипуляции с изображениями, в которой вы нуждаетесь, вместо этого больше должны отображаться изображения:
http://qt-project.org/doc/qt-4.8/qpixmap.html
Вместо этого я бы предложил искать более легкие решения для вашей проблемы с гистограммой, например CSS. Вот как это сделать, используя два элемента div:
http://www.1080degrees.net/archive/journal/simple_css_bar_graph/
Если вы предпочитаете показывать изображение в конце концов и иметь библиотеки GD, возможно, посмотрите здесь:
http://php.net/manual/en/function.imagecreate.php