drawText mit QItemDelegate?

Alles rund um die Programmierung mit Qt
Antworten
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

drawText mit QItemDelegate?

Beitrag von defenderLQ »

hallo

ich will den SSIZE inhalt nacht rechts ausrichten , nur der effekt ist nicht zu sehen:

Code: Alles auswählen

#ifndef SDELEGATE_H
#define SDELEGATE_H

#include <QItemDelegate>
#include <QStyleOptionProgressBarV2>
#include <QStyleOptionViewItemV2>
#include <QModelIndex>
#include <QPainter>
#include <QProgressBar>
#include "misc.h"

#define SSIZE 0


class SDelegate: public QItemDelegate {
  Q_OBJECT

  public:
    SDelegate(QObject *parent=0) : QItemDelegate(parent){}

    ~SDelegate(){}

    void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const{
      QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
      QString temp;
      switch(index.column()){
        case SSIZE:
          QItemDelegate::drawBackground(painter, opt, index);
          QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
          //painter->drawText(option.rect, Qt::AlignRight, temp);
          painter->drawText( option.rect, Qt::AlignRight | Qt::AlignRight, temp);
          break;
        default:
          QItemDelegate::paint(painter, option, index);
      }
    }

    QWidget* createEditor(QWidget*, const QStyleOptionViewItem &, const QModelIndex &) const {
      return 0;
    }
    QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const {
      return QSize(50,17);
    }
};

#endif
oder gibt eine andere möglichkeit beim QTreeView ?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Übers Model? Qt::TextAlignmentRole?
defenderLQ
Beiträge: 156
Registriert: 27. Juli 2006 20:53

Beitrag von defenderLQ »

ja meinte übers model..

Code: Alles auswählen

   SearchListModel = new QStandardItemModel(0, 1);
   SearchListModel->setHeaderData(SSIZE, Qt::Horizontal, tr("Size"))
bei
http://doc.trolltech.com/4.3/qitemdelegate.html

steht schon was mit
Qt::TextAlignmentRole Qt::Alignment
aber wie man es anwendet nicht?
Antworten