Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: zoro86 от Декабрь 01, 2009, 09:50



Название: как вставить HTML текст QListWidget
Отправлено: zoro86 от Декабрь 01, 2009, 09:50
Кто нибудь сталкивался с тем что необходимо вставить в QListWidget HTML текст...
Текст который надо вставить  состоит из нескольких QString элементов..
strSumma = selectNewsQuery.value(j).toString();
              if(Debuger) qDebug() << strSumma;
              strAll += strSumma+"\n";

ну далее что та вроде такого..

QListWidgetItem *item = lw->item(i);
           if (i%2 == 1)
           item->setBackground(QColor::QColor ( 229, 226, 226, 255 ));
           item->setTextAlignment(1);
           lw->addItem(strAll);
           strAll = "";
           i++;

Желательно как нибудь разделить текстовые строки которые вставляются  lw->addItem(strAll);

или как нить менять QString strSumma... фон цвет и.т.д


Название: Re: как вставить HTML текст QListWidget
Отправлено: fuCtor от Декабрь 02, 2009, 14:49
Как вариант делать свой делегат, который и будет как надо отрисовывать через QTextDocument.


Название: Re: как вставить HTML текст QListWidget
Отправлено: zoro86 от Август 26, 2010, 13:59
Тема старая но хорошая...

делаю следующее..

.h
Код:
#ifndef ITEMDELEGAT_H

#define ITEMDELEGAT_H



#include <QItemDelegate>



class ItemDelegate : public QItemDelegate

{

    Q_OBJECT



public:

    ItemDelegate(QObject *parent);



    QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,

                          const QModelIndex &index) const;




   ~ItemDelegate();


};


#endif // ITEMDELEGAT_H

.cpp

Код:
#include <QLabel>


#include "itemDelegat.h"





ItemDelegate::ItemDelegate(QObject *parent)

    : QItemDelegate(parent)

{



}




QWidget *ItemDelegate::createEditor(QWidget *parent,

    const QStyleOptionViewItem &/* option */,

    const QModelIndex &  index ) const

{

   QTextBrowser  *editor = new  QTextBrowser(parent);



   return editor;

}


ItemDelegate::~ItemDelegate()

{



}

далее в использование для QListWidget *lw;

Код:
lw->setItemDelegate(new ItemDelegate(this));


но почему то HTML текст не разпазнается... поискал по форуму там с помощью paint рисуют widget-ы... а мне как быть кто делал киньти примерчик... а то что та втыкнуть не могу...


Название: Re: как вставить HTML текст QListWidget
Отправлено: crossly от Август 26, 2010, 14:56
Код:
virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
void QTextDocument::drawContents ( QPainter * p, const QRectF & rect = QRectF() )


Название: Re: как вставить HTML текст QListWidget
Отправлено: zoro86 от Август 26, 2010, 15:26
В чем смысл этих строк... и как их использовать, проста не очень смысл понял... ???


Название: Re: как вставить HTML текст QListWidget
Отправлено: crossly от Август 26, 2010, 15:31
переопределить у делегата метод paint и отрисовать html с помощью QTextDocument...


Название: Re: как вставить HTML текст QListWidget
Отправлено: zoro86 от Август 27, 2010, 06:48
благодарю... за ответ нашел...

http://www.prog.org.ru/topic_6102_0.html