次の画像のように、背景の一部に背景色を設定するにはどうすればよいですか。
もちろん、枠枠は無しで、シアン色のみを設定したいです。
左部分 (シアン) の長さをウィジェットの長さのパーセンテージ (30% など) として設定する必要があります。
css を使用して、qlineargradient を少しハックします。シアンのエッジが少しぼやける場合があります。
QFrame
{
background-color: qlineargradient(x1:0, x2: 1, stop: 0 cyan, stop: 0.29 cyan, stop: 0.2901 white, stop: 1 white);
}
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);
...
}