• Viernes 8 de Noviembre de 2024, 16:11

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - WeraBonita

Páginas: [1]
1
C/C++ / creacion de un xml
« en: Miércoles 29 de Julio de 2009, 14:37 »
hola que tal como estan?

Les cuaento, tengo que hacer un programa que me cree un archivo xml, estoy utilizando kdevelop, opensuse y la libreria libxml2, y C++, lo que pasa es que es la priemera vez que estoy haciendo esto de crear un xml y pues tambien es la primera vez que me estoy utilizando C++ y pues la vdd me urge terminar el programa, mi problema es que me marca un error que la mayoria de mi codigo en donde intento crear el xml. el error es este:

design.cpp:321: error: invalid conversion from 'const char*' to 'const xmlChar*'
design.cpp:321: error: cannot convert 'xmlNode*' to 'const xmlChar*' for argument '4' to 'xmlNode* xmlNewTextChild(xmlNode*, xmlNs*, const xmlChar*, const xmlChar*)'
design.cpp:322: error: invalid conversion from 'const char*' to 'const xmlChar*'
design.cpp:322: error: initializing argument 2 of 'xmlAttr* xmlNewProp(xmlNode*, const xmlChar*, const xmlChar*)'
design.cpp:322: error: invalid conversion from 'int' to 'const xmlChar*'


y es el mismo error en verias lieeas de mi codigo, y pues he intentado solucionarlo haciendo un cast de la siguiente manera:

xmlNodePtr px1Left = xmlNewChild (character, NULL,(const xmlChar*) "px1Left", posX1 );

en cada una de las lineas que me marce ese error pero lo unico que logro es que me genere un error diferente:

design.cpp:321: error: cannot convert 'xmlNode*' to 'const xmlChar*' for argument '4' to 'xmlNode* xmlNewTextChild(xmlNode*, xmlNs*, const xmlChar*, const xmlChar*)'


Aqui les dejo un pedazo de codigo en donde me marca estos errores:


xmlNodePtr character = xmlNewTextChild (picture, NULL, "character", character);
xmlAttrPtr idchracter = xmlNewProp (character, "id", i);

xmlNodePtr px1Left = xmlNewChild (character, NULL,(const xmlChar*) "px1Left", posX1 );
xmlNodePtr py1Left = xmlNewTextChild (character, NULL, "py1Left",posY1);
xmlNodePtr px2Rihgt = xmlNewTextChild (character, NULL, "px2Right",posX2 );
xmlNodePtr py2Rihgt = xmlNewTextChild (character, NULL, "py2Right",posY2 );
xmlNodePtr length = xmlNewTextChild (character, NULL, "length", height);// ***********************
xmlNodePtr width = xmlNewTextChild (character, NULL, "width", width);// ************************

'Espero alguien me pueda ayudar porque necesito terminar el programa.

De antemano muchas gracias

2
C/C++ / problema com mi codigo
« en: Sábado 18 de Julio de 2009, 00:53 »
hola que tal soy nuevo en esto de C++ y quiero ver si me pueden ayudar, mi situacion es la siguiente: tengo una imagen la cual la muestro en un label pasandole un pixmap, bueno muestro la imagen y despues le dibujo un rectangulo encima, mi problema es cuando quiero borrar los cambios que le hice a la imagen (osea borrar el rectangulo que le dibuje encima) se me borra toda la imagen. Lo que quiero hacer es que cuando le de click a un boton se borre el rectangulo que le dibuje a la imagen y pueda ver la imagen tal y como estaba antes de modificarla, es algo asi como deshacer los cambios que le hice a la imagen. Mi idea es volver a cargar la imagen pero no se como hacerlo sin que me salga la ventanita para volver a elegir la imagen desde mi disco duro, solo quiero que cuando le de click al botoon "deshacer" me vuelva a mostrar la imagen original. espero que me puedan ayudar.

Estoy utilizando Kdevelop con Qt4 y bajo openesuse 11.1

De antemano gracias aqui les dejo un pedazo de codigo:



#include <QXmlStreamWriter>
#include "design.h"
#include <stdio.h>
#include <iostream>
#include <QFileDialog>
#include <QtGui>
#include <QTextEdit>
#include <QTextStream>
#include <QTextEdit>
#include <fstream>
#include <kimagefilepreview.h>
#include <kurllabel.h>
#include <ncurses.h>
#include <QGraphicsView>
#include <QInputEvent>
#include <QEvent>
#include <QMouseEvent>
#include <QCursor>
#include <QImage>
#include <QPixmap>
#include <QLineF>
#include <QPainter>
#include <QRectF>
#include<QBrush>
#include<QPen>
#include<QPixmapCache>
using namespace std;




Design::Design ( QWidget* parent, Qt::WFlags fl )
      : QWidget ( parent, fl ), Ui::CR()
{
   setupUi ( this );

// KImageFilePreview pKImageFilePreview = new KImageFilePreview(this);
// pkImageFilePreview ->setGeometry(QFrame(QFramePrivate &dd, pKImageFilePreview* parent = 0, Qt::WindowFlags f = 0);
// pKImageFilePreview ->setMinimunSize(630,388);
// imagePreviewLayout ->addWidget(pKImageFilePreview);






// To show the windows in the middle of the screen
//***************************************************************************************

   QDesktopWidget *desktop = QApplication::desktop();

   int screenWidth, width;
   int screenHeight, height;
   int x, y;
   QSize windowSize;

   screenWidth = desktop->width(); // get width of screen
   screenHeight = desktop->height(); // get height of screen

   windowSize = size(); // size of our application window
   width = windowSize.width();
   height = windowSize.height();

// little computations
   x = ( screenWidth - width ) / 2;
   y = ( screenHeight - height ) / 2;
   y -= 50;

// move window to desired coordinates
   move ( x, y );


//***************************************************************************************


//signal and slot conection
   connect ( ButtonBrowse, SIGNAL ( clicked() ), this, SLOT ( ShowImage() ) );
   connect ( ButtonOkSel, SIGNAL ( clicked() ),this , SLOT ( getMouseClicked() ) );
   connect ( ButtonShowSelection, SIGNAL ( clicked() ) ,this, SLOT ( repaint() ) );
   connect ( ButtonCancelChar, SIGNAL ( clicked() ) ,this, SLOT ( update() ) );


//createActions();//////////////////////////////////////


}

Design::~Design()
{
}

/*$SPECIALIZATION$*/
/*void Design::clicked()
{

}*/


void Design::loadFile ( const QString &fileName )
{
   QFile file ( fileName );
   QTextStream in ( &file );
}


void Design::ShowImage()
{


   const QString fileName = QFileDialog::getOpenFileName ( this );

   if ( !fileName.isEmpty() )
      loadFile ( fileName );


   ViewCar=QPixmap ( fileName );

   


   if ( !ViewCar.isNull() )
   {
      LabelPlate->setPixmap ( ViewCar );

   }



   w=ViewCar.width();
   h=ViewCar.height();
   labelw->setNum ( w );
   labelh->setNum ( h );


}


/*
void Design::setPicture(){
QLabel *LabelIMG;
QPicture *ViewPlate;
LabelIMG->setPicture(const View=Plate);
}*/


void Design::getMouseClicked()
{
//     int x=11;
//     int y=250;
//
//    if (x>10&&y<500){
//   QLineEdit *lineEditChar = new QLineEdit();
   LabelIMG->setText ( "click" );
   //}

}






void Design::mousePressEvent ( QMouseEvent* event )
{



   difX=421/w;
   difY=191/h;

   switch ( event->button() )
   {
      case Qt::LeftButton:

         px1=event->QMouseEvent::x();
         posX1= ( px1-680 ) /difX;
         labelX1Char->setNum ( posX1 );
         py1=event->QMouseEvent::y();
         posY1= ( py1-170 ) /difY;
         labelY1Char->setNum ( posY1 );
         break;
      case Qt::RightButton:

         px2=event->QMouseEvent::x();
         posX2= ( px2-680 ) /difX;
         labelX2Char->setNum ( posX2 );
         py2=event->QMouseEvent::y();
         posY2= ( py2-170 ) /difY;
         labelY2Char->setNum ( posY2 );

         break;
      default:
         LabelIMG->setText ( "hola" );

   }



   width = ( posX2 )- ( posX1 );
   height = ( posY2 )- ( posY1 );
   LabelWidth->setNum ( width );
   LabelHeight->setNum ( height );


   posX11= ( int ) ( posX1 );
   posY11= ( int ) ( posY1 );
   width1= ( int ) ( width );
   height1= ( int ) ( height );




//QRectF rectangle=QRect(posX1,posY1,width,height);




//rectangle.setBrush(Qt::SolidPattern);



//QPainter painter(this);
//painter.drawEllipse(rectangle);

}



void Design::repaint()
{
   QPainter rectangle;
   rectangle.begin ( &ViewCar );
   QPen pen;
   pen.setColor ( Qt::blue );
   pen.setWidth ( 0.5 );
   rectangle.setPen ( pen );
   rectangle.drawRect ( posX11,posY11,width1,height1 );
   rectangle.fillRect ( posX11,posY11,width,height1,Qt::Dense4Pattern );
   LabelPlate->setPixmap (ViewCar );

}

void Design::update()     //// ********************************************** con este slot quiero volver a mostrar la imagen*******************************
{
   labelX1Char->setNum ( 0 );
   labelY1Char->setNum ( 0 );
   labelX2Char->setNum ( 0 );
   labelY2Char->setNum ( 0 );
   LabelWidth->setText ( fileName );
   LabelHeight->setNum ( 0 );





// if ( !fileName.isEmpty() )
//  loadFile ( fileName );

//  ViewCar=QPixmap ( fileName );
//
//  LabelPlate->setPixmap ( ViewCar );

//    QPainter EraseRect;
//    EraseRect.restore();
//    EraseRect.begin ( &ViewCar );
//     EraseRect.eraseRect ( posX11,posY11,width1,height1 );
// LabelPlate->setPixmap ( ViewCar );
}

Páginas: [1]