Widget in einem TreeView Anzeigen mittels delegate

Alles rund um die Programmierung mit Qt
Antworten
Cpt Archer
Beiträge: 2
Registriert: 6. September 2006 10:17

Widget in einem TreeView Anzeigen mittels delegate

Beitrag von Cpt Archer »

Hallo Ich möchte eine ProgressBar in einem TreeView anzeigen mittels eines Delegates

Ich habe eine Klasse X :public QItemDelegate
dort möchte ich paint und size hint überschreiben.

die Frage ist nun wie ich es schaffe in
virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
ein Widget (QProgressBar) zu zeichnen

*edit
scheint irgendwie mittels QStyleOptionProgressBarV2 zu gehen. nur wie :(
Cpt Archer
Beiträge: 2
Registriert: 6. September 2006 10:17

Beitrag von Cpt Archer »

dieses liefert leider nicht das gewünschte Ergebniss

Code: Alles auswählen

namespace GuiProgressView{

    ProgressDelegate::ProgressDelegate(QObject *parent)
        : QItemDelegate(parent)
    {
		//		mProgress = new QStyleOptionProgressBarV2();
		mProgress.minimum =0;
		mProgress.maximum =100;
		mProgress.progress = 55;
    }
	void ProgressDelegate::paint ( QPainter * painter,
				 const QStyleOptionViewItem & option,
				 const QModelIndex & index ) const
	{
		if(index.column() == 1)
		{ 
			QStylePainter paint(new QProgressBar());
			paint.setViewport(painter->viewport());
			paint.drawControl(QStyle::CE_ProgressBar, mProgress);
	   
		}else{
			QItemDelegate::paint(painter, option,index);
		}

	}

	QSize ProgressDelegate::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const
	{
		return QItemDelegate::sizeHint(option,index);
		
	}


} //end namespace
------------------------------------------------------------------
namespace GuiProgressView{

class ProgressDelegate : public QItemDelegate
{
	Q_OBJECT
public:
	ProgressDelegate(QObject *parent = 0);
    /*QWidget *createEditor(QWidget *parent,
						  const QStyleOptionViewItem &option,
						  const QModelIndex &index) const;
	*/
	void paint ( QPainter * painter,
				 const QStyleOptionViewItem & option,
				 const QModelIndex & index ) const; 
	QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;

	
 private:
	QStyleOptionProgressBarV2 mProgress;
};
}
Antworten