Wie den Style einer ProgressBar in QTableWidget setzen?

Alles rund um die Programmierung mit Qt
Antworten
dnb
Beiträge: 8
Registriert: 1. September 2009 15:47

Wie den Style einer ProgressBar in QTableWidget setzen?

Beitrag von dnb »

Hallo,

ich habe eine QTableWidget mit vielen QProgressBars, der grobe Aufbau ist im Code-Schnippsel zu sehen.
Jetzt sehe ich leider nicht welche Zelle ich selektiert habe, nur an den fett gedruckten Zeilen- und Spalten-Labels. Wie bekomme ich hin, das zum Beispiel der Rand der Progressbar eine andere Farbe bekommt, wenn ich diese in der Tabelle selektiert habe?


mfg =>dnb<=

Code: Alles auswählen

class TableItem : public QTableWidgetItem {
   Q_OBJECT
   public:
      TableItem()
         : QTableWidgetItem( "" ) {
      }
};

class TableItemDelegate : public QStyledItemDelegate {
   Q_OBJECT
   public:
      TableItemDelegate( QObject* parent = 0x0 )
         : QStyledItemDelegate( parent ) {}

      void paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const {
         QStyleOptionProgressBarV2 progressBarOption;
         progressBarOption.rect = option.rect;
         progressBarOption.minimum = 0;
         progressBarOption.maximum = 100;
         progressBarOption.progress = 45;
         progressBarOption.text = QString::number( 45 ) + "%";
         progressBarOption.textVisible = true;
         QApplication::style()->drawControl( QStyle::CE_ProgressBar, &progressBarOption, painter );
         return;
      }
};

class Table : public QTableWidget {
   Q_OBJECT
   public:
      Table( QWidget* parent )
         : QTableWidget( parent ) {
         this->setItemDelegate( new TableItemDelegate( this ) );
         this->setItem( 0, 0, new TableItem() );
         this->setItem( 0, 1, new TableItem() );
         this->setItem( 1, 0, new TableItem() );
         this->setItem( 1, 1, new TableItem() );
      }
};
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Schau dir mal stylesheets in der doku an!
ich denke das könnte dir helfen!
dnb
Beiträge: 8
Registriert: 1. September 2009 15:47

Beitrag von dnb »

Die StyleSheets hatte ich mir schon angetestet, ohne zum Erfolg zu kommen. Welche Klasse muss ich dann in dem Fall stylen?
Mit QTableWidget:item:selected verändere ich nur die normalen Items, aber die TableItems veraändern sich nicht. Mit QProgressBar:selected bekomme ich keine Auswirkung hin.

mfg =>dnb<=
Antworten