Russian Qt Forum

Qt => XML => Тема начата: Jkc от Апрель 19, 2005, 15:36



Название: Как записать в XML цвет шрифта из QListView
Отправлено: Jkc от Апрель 19, 2005, 15:36
Как записать в XML цвет шрифта из QListView
Данные в QListView написаны разным цветом, нужно
както сохранять эти цвета в XML файле что бы потом загрузить.


Название: Как записать в XML цвет шрифта из QListView
Отправлено: Zigmar от Апрель 20, 2005, 13:44
Ну, поскольку, ты сам, наверное, и сереализируешь в XML, то добавь еще один оттрибут на item. В чем вопрос?


Название: Как записать в XML цвет шрифта из QListView
Отправлено: Jkc от Апрель 21, 2005, 19:37
После изменения этой функции с QListViewItem в MyQListViewItem
программа стала зависать при добавлении данных.
Код:

void Form1::buildXML( MyQListViewItem *parentItem, QDomElement &parentElement )
{
    MyQListViewItem *thisItem;
   
    if ( parentItem )
thisItem = (MyQListViewItem*)parentItem->firstChild();
//         thisItem = parentItem->firstChild();
    else
thisItem = (MyQListViewItem*)listView2->firstChild();
//       thisItem = listView2->firstChild();
    QDomDocument doc = parentElement.ownerDocument();
    while ( thisItem ) {
QDomElement e = doc.createElement( "item" );  
parentElement.appendChild( e );
e.setAttribute( "text", thisItem->text(0));
e.setAttribute( "green", thisItem->getColor().green());
buildXML( thisItem, e );
thisItem = thisItem->nextSibling();
    }
}

Не знаю может дело в моём QListViewItem
Код:

class MyQListViewItem : public QListViewItem
{
public:
    MyQListViewItem( QListView *parent );
    MyQListViewItem(QListViewItem * parent);
    MyQListViewItem( QListView * parent, QListViewItem * after );
    MyQListViewItem( QListViewItem * parent, QListViewItem * after );      
    ~MyQListViewItem();
public:
    virtual void paintCell( QPainter* p, const QColorGroup& cg, int column, int width, int align );        
   
    QColor  getColor() const {return col; };
    void setColor( QColor c ) { col = c; }
    MyQListViewItem * nextSibling()  const { return siblingItem; };
public:
    MyQListViewItem * siblingItem;
    QColor col;
};
#endif // FORM1_H

//

MyQListViewItem::MyQListViewItem(QListView *parent)
: QListViewItem( parent ){ }
MyQListViewItem::MyQListViewItem(QListViewItem * parent)
    : QListViewItem( parent ) { }
MyQListViewItem::MyQListViewItem( QListView * parent, QListViewItem * after )
    : QListViewItem( parent , after)
{    }
MyQListViewItem::MyQListViewItem( QListViewItem * parent, QListViewItem * after )
    : QListViewItem( parent , after)
{ }
MyQListViewItem::~MyQListViewItem()
{ }
//-----------------------------------------------------------
//MyQListViewItem * MyQListView::findItem ( const QString & text, int column, ComparisonFlags compare = ExactMatch | CaseSensitive ) const


//------------------------------------------------------------
void MyQListViewItem::paintCell( QPainter* p, const QColorGroup& cg, int column, int width, int align )
{
 QPen pen = p->pen();
 if ( !isSelected() )
    p->fillRect( 0, 0, width, height(), QBrush( cg.base() ));
 else
   p->fillRect( 0, 0, width, height(), QBrush( cg.base() ));
 pen.setColor( col );
 p->setPen( pen );
 p->drawText( 0, 0, width, height(), align, text(column) );  
}


Благодарю за помощь.


Название: Как записать в XML цвет шрифта из QListView
Отправлено: Sergeich от Апрель 22, 2005, 13:47
А на хрена нужен MyQListViewItem::nextSibling() !!?