Qt QWidget connect

Résolu
victor110 Messages postés 86 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 13 mai 2010 - 9 mai 2010 à 14:42
victor110 Messages postés 86 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 13 mai 2010 - 13 mai 2010 à 11:06
Bonjour,
Je travaille avec Qt en C++ et j'aimerai savoir comment passer la méthode move() d'une QWidget en SIGNAL dans un QObject::connect.

Configuration: Linux / Firefox 3.5.9

4 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
12 mai 2010 à 19:31
J'ai trouvé ceci : http://doc.qt.nokia.com/4.6/qmoveevent.html.

Je me suis déja servi de closeEvent, ça marche comme ça :

(On réimplémente juste )

class Classe
{

public:

void closeEvent(QCloseEvent *event);

};

void Classe::closeEvent(QCloseEvent *event)
{
if (unBoolean == true)
event->accept();
else
event->reject();

}



donc j'imagine que pour move event :


class Classe
{

public:

void moveEvent( const QPoint & pos, const QPoint & oldPos);

};

void Classe::moveEvent( const QPoint & pos, const QPoint & oldPos)
{
anciennePos = oldPos;
nouvellePos = pos;

deplacementX = nouvellePos.x() - anciennePos.x();
deplacementY = nouvellePos.y() - anciennePos.y(); 
}


Je n'ai jamais essayé pour moveEvent mais à mon avis c'est à peu près comme ça.

Pop70
3
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
11 mai 2010 à 20:47
Il faut créer un signal personnalisé :



class UneClasse : public QMainWindow
{
Q_OBJECT

public:

uneClasse;

signals: // pour créer un signal
void widgetMove (); // Nommer de n'importe quelle façon

fBouger (); // fonction ou le widget va bouger


private:

QWidget *unWidget;

};

uneClasse::uneClasse ()
{
// Connexion du signal widgetMove au Slot quit;

QObject::connect(this, SIGNAL(widgetMove()), qApp, SLOT(quit()));
}


fBouger()
{
unWidget->move(5,3);

emit widgetMove (); // émet le signal
}




Pop70
0
victor110 Messages postés 86 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 13 mai 2010
12 mai 2010 à 14:36
merci de ta réponse mais
En fait j'aimerai récupérer la position de ma fenêtre dans un label à chaque fois que celle ci bouge.
0
victor110 Messages postés 86 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 13 mai 2010
13 mai 2010 à 11:06
Merci ca marche parfaitement sauf que la position n'est pas donnée en temps réelil faut positionner la fenêtre ensuite seulement la position est donnée.

ps:
Dans mon cas j'ai plutôt utilisé:
void Window::moveEvent(QMoveEvent * event)
0
Rejoignez-nous