Вопрос по – Установить цвет фона только частично с помощью таблиц стилей

4

Как я могу установить цвет фона для части фона, как на следующем изображении:

enter image description here

Конечно, без рамок, я хочу установить только голубой цвет.

Мне нужно установить длину левой части (голубой) в процентах от длины виджета, например, 30%.

Ваш Ответ

2   ответа
5

С css я бы немного взломал qlineargradient. Обратите внимание, что край голубого цвета может быть немного размытым.

QFrame
{
        background-color: qlineargradient(x1:0, x2: 1, stop: 0 cyan, stop: 0.29 cyan, stop: 0.2901 white, stop: 1 white);
}
2

Если вы хотите, чтобы это было жестко закодировано в приложении, вы можете перегрузитьpaintEvent функция в виджете. Что-то вроде этого:

void MyWidget::paintEvent(QPaintEvent *event)
{
  QPainter painter(this);
  QPen pen(Qt::NoPen);
  painter.setPen(pen);
  painter.fillRect(0, 0, width(), height(), Qt::white);
  painter.fillRect(0, 0, 0.3*width(), height(), Qt::cyan);
  ...
}
Да, я знаю, что вы спрашивали о таблицах стилей, но жестко закодированная версия также возможна, и ее легко выполнить. Без размытия или различных визуализаций, в зависимости от платформы вы запускаете приложение.

Похожие вопросы