15

私はubuntu 11.04を実行しています。これは私の進行状況バーがどのように見えるかです:

プログレスバー

バッチ処理ウィンドウ (バッチ アイテムごとに 1 つ) にプログレス バーを表示しており、それらをステータス インジケーターとして使用したいと考えています (すべてが順調に進んでいるときは緑、エラーの場合は赤など)。

このほぼ同じ質問に対して行われたものを含め、いくつかの提案を試みました。残念ながら、私はそれを機能させることができませんでしたし、QProgressBars のカスタマイズに関するドキュメントも役に立ちません。

提案どおりに QProgressBar をサブクラス化し、スタイルシートとパレットを使用してみました (同時にではなく、代替手段として)。スタイルシートでは、通常のプログレス バーのように見せることはできません。色を変えることだけが本当にやりたいことなので、スタイルシートの代わりにパレットを使用する方がはるかに簡単だと思いましたが、パレットでは何も起こりません。

パレットで試したバージョンの 1 つを次に示します。

#include "myprogressbar.h"

#include <QtGui/QPalette>

MyProgressBar::MyProgressBar(QWidget *parent) :
    QProgressBar(parent)
{}

void MyProgressBar::onProgress(int value, int maximum, QString phase)
{
    setMaximum(maximum);
    setValue(value);
    setFormat(phase);

    QPalette p = this->palette();
    p.setColor(QPalette::Highlight, QColor(Qt::green));
    this->setPalette(p);
}

...

ここで提案されているバージョンも試しましたが、それも役に立ちませんでした。

4

3 に答える 3

13

これを試しました:

QProgressBar {
     border: 2px solid grey;
     border-radius: 5px;
     background-color: #FF0000;
 }

 QProgressBar::chunk {
     background-color: #05B8CC;
     width: 20px;
 }

progressBarのstyleSheetとして、これを取得しました ここに画像の説明を入力してください

そのため、バーの背景を希望の色に簡単に変更でき、。を使用して自分でテキストを表示できますsetFormat()。それはあなたのために働いていますか?

于 2012-05-24T17:06:27.860 に答える
6

私の場合、「ハイライト」カラーロールを使用するとうまくいきます(Plastiqueスタイルを使用)。

QPalette p = palette();
p.setColor(QPalette::Highlight, Qt::green);
setPalette(p);
于 2013-09-03T10:08:13.077 に答える