RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Héritation de classe QT et utilisation..

Forum : LIBRAIRIE C++
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ LIBRAIRIE C++

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET ENLEVER MENTION RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ APPARTENANT A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM LIBRAIRIE C++

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Visiteur MP
Membre du club
Inscrit :
Messages : 1232
Message
#102480
Posté le 26/06/06 à 18:51
Salut à tous,
vous vous êtes sûrement déjà demandé comment il fallait procéder pour hériter d'une classe Qt, et puis surtout à quoi cela servait et comment cela s'utilisait ?

Et bien voici un petit Topic qui vous expliquera, comment vous créer une QDialog ayant automatiquement une icône par défaut :D:

Bref, débutons ...

[quote]
Créer un fichier CMyDlg.h ainsi qu'un fichier CMyDlg.cpp, dans le premier vous insérez ce bout de code (préprocesseur):
[code]
#ifndef _CMYDLG_H_
#define_CMYDLG_H_
[/code]

et tout en bas vous mettez:
[code]
// ceci doit rester en bas du code, le code que
// vous écrirez devra se trouver entre les deux bouts
// de code que je viens de mensionner!
#endif // _CMYDLG_H_
[/code]

Ensuite nous devons déclarer notre classe, nous allons l'appeler CMyDlg. Tout d'abord nous devons inclure le fichier <qdialog.h> pour pouvoir hériter de cette classe! Après avoir fait cela nous allons déclarer la classe ainsi que ses méthodes. Les fonctions que nous aurons besoin sont: SetIcon( QPixmap ), SetTitle( QString ). Pour débuter c'est assez, vous remarquez donc, que vous pourrez: changer l'icône de la fenêtre de même que son titre! Voici la déclaration:
[code]
#ifndef _CMYDLG_H_
#define_CMYDLG_H_

#include <qdialog.h>
#include <qstring.h>
#include <qpixmap.h>
#include <qwidget.h>

class CMyDlg : public QDialog
{
public :
// permet de mettre un icône ainsi que de
// mettre un titre ... :)
CMyDlg( QWidget *parent = 0, const char *name = 0, QPixmap Icon = 0, QString Title = QString::null, bool modal = false, WFlags fl = 0 );

~CMyDlg( );

void SetTitle( QString );
void SetIcon( QPixmap );

QString GetTitle( ) const;
QPixmap GetIcon( ) const;

private :
QString m_strTitle;
QPixmap m_pixIcon;
};

// ceci doit rester en bas du code, le code que
// vous écrirez devra se trouver entre les deux bouts
// de code que je viens de mensionner!
#endif // _CMYDLG_H_
[/code]

Voilà donc la déclaration :) Rien de plus compliqué, ce n'est bien sûr qu'un début, vous pouvez adapter cette fonction comme vous le voulez :D:

Maintenant nous devons définir les fonctions, c'est-à-dire les implémenter... Comment allons nous implémenter le constructeur ? Tout simple ... Nous allons tout simplement appeler le constructeur d'un QDialog (ce qui va générer un dialogue) et ensuite nous allons ajouter les attribut, ce qui va permettre d'ajouter un titre et une icône, l'utilisateur peut choisir les paramètres, aucun des paramètres n'est obligatoire cela s'appelle un constructeur par défaut. Démonstration:
[code]
#include "CMyDlg.h"

CMyDlg::CMyDlg( QWidget *parent, const char *name, QPixmap Icon, QString Title, bool modal, WFlags fl )
// appelle le constructeur de QDialog :)
: QDialog( parent, name, modal, fl )
{
if( !name )
setName( "MyDlg" );

if( Title.isEmpty( ) )
{
m_strTitle = QString( Title );
setTitle( "Dlg by [DmXx]" );
}
// si un icône est donné ...
if( Icon )
{
m_pixIcon = QPixmap( Icon );
setIcon( Icon );
}

// le reste du code que vous voulez insérer ...
}

CMyDlg::~CMyDlg( )
{
// rien besoin de faire, Qt libère automatiquement
// les objets de ses classes !
}

void CMyDlg::SetTitle( QString in_strTitle )
{
m_strTitle = QString( in_strTitle );
setTitle( m_strTitle );
}

void CMyDlg::SetIcon( QPixmap in_pixIcon )
{
m_pixIcon = QPixmap( in_pixIcon );
setIcon( m_pixIcon );
}

QString CMyDlg::GetTitle( ) const
{
return m_strTitle;
}

QPixmap CMyDlg::GetIcon( ) const
{
return m_pixIcon;
}
[/code]

Voilà c'est déjà tout, pour utiliser cela, rien de plus simple: en considérant que mainWnd est votre mainwindow, vous faites dans votre main:
[code]
CMyDlg *pMonDlg = new CMyDlg( mainWnd, "MonDlg", QPixmap( "CheminVersLimage" ), QString( "LeTitre" ), true );
pMonDlg->show( );
[/code]

Et le tour est joué :)
[/quote]

j'espère que vous aurez appris ce que vous vouliez :D:

[col=#FA0000]Merci de laisser ce post sans commentaire, il appartient à la FAQ CC++. Si vous avez encore des questions postez un nouveau Topic.[/col]

ciao :wink:

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.