[Kde-devel-es] C++ hasta en la sopa

Albert Astals Cid tsdgeos at terra.es
Wed Mar 3 22:26:53 CET 2004


Para Qt los clicks sobre widgets no son signals sino eventos.

Para poder captarlos has hacer que tu clase herede de QWidget (o alguna que 
herede de este como QMainWindow, KMainWindow, etc) y reimplementar el metodo 
void mousePressEvent ( QMouseEvent * e ), para tener algo asi como parece que 
quieres tendrias que:

Definir un signal en el .h de tu clase
	signal:
		void clicked();

redefinir el el .h el mousePressEvent
	protected:
		void mousePressEvent ( QMouseEvent * e );

y en el .cpp correspondiente

void nombredemiclase::mousePressEvent ( QMouseEvent * e )
{
	if (e -> button() == Qt::LeftButton) emit  clicked();
}

Albert.

A Dimecres 03 Març 2004 20:32, Manuel Pérez López va escriure:
> El Miércoles 03 Marzo 2004 16:19, Manuel Pérez López escribió:
> > Otro problema  es que quiero trabajar con eventos de click de
> > ratón sobre un formulario, pero no existe tal señal en el Qt Designer (F3
> > y seleccionar el formulario sólo), o sobre una imagen. ¿Cómo lo hago?
>
> Mi pregunta de otra forma. Esto no funciona
>
>
> En main:
> QObject::connect( mainWin, SIGNAL(clicked()),
> mainWin,SLOT(mainWin_click() ) );
>
>
> definiendo adecuadamente la respuesta a dar al evento:
> public slots:
>   /*$PUBLIC_SLOTS$*/
>   void mainWin_click() {close();};
>
> El programa compila correctamente pero no funciona el click, con un aviso
> de:
>
> QObject::connect: No such signal PresentaPortada::clicked()
> _______________________________________________
> Kde-devel-es mailing list
> Kde-devel-es at kde.org
> https://mail.kde.org/mailman/listinfo/kde-devel-es



More information about the Kde-devel-es mailing list