http://cite-sciences.fr.nf Groupe : Membres
|
Salut a tous;
Voila en arrivant sur l'exercice de redimentionement d'une fenétre en hauteur et en largeur il ma fallut utiliser les deux methode height() et width() (entout cas d'après m@teo) mais je ne voie vraiment pas comment je peux les utiliser.
Mon code d'essey est:
MaFenetre.h
Code : C++ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | #ifndef DEF_MAFENETRE
#define DEF_MAFENETRE
#include <QApplication>
#include <QWidget>
#include <QSlider>
class MaFenetre : public QWidget
{
Q_OBJECT
public:
MaFenetre();
public slots:
void changerLargeur(int largeur=200);
void changerHauteur(int longueur=200);
private:
QSlider *m_slider;
QSlider *m_slider2;
};
#endif
|
MaFenetre.cpp
Code : C++ 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | #include "MaFenetre.h"
MaFenetre::MaFenetre() : QWidget()
{
setFixedSize(200, 40);
m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setRange(200, 800);
m_slider->setGeometry(10, 10, 150, 20);
QObject::connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));
m_slider2 = new QSlider(this);
m_slider2->setRange(200, 6000);
m_slider2->setGeometry(10, 10, 150, 20);
QObject::connect(m_slider2, SIGNAL(valueChanged(int)), this, SLOT(changerHauteur(int)));
}
void changerLargeur(int largeur)
{
setFixedSize(largeur, height());
}
void changerHauteur(int longueur)
{
setFixedSize(width(), longueur);
}
|
Mersi en avance.
Édité
le 08/07/2008 à 10:54:42
par amriamir
|
 Groupe : Membres
|
je serai toi, je ferai de largeur et longueur des attributs, ça veux dire que dans le .h tu créé des variables Largeur et Longueur que tu modifies dans tes slots.
|
http://cite-sciences.fr.nf Groupe : Membres
|
Merci leopard je vais essayer
|
 Groupe : Membres
|
si tu veux, je vais faire plus précis :
Code : C++1
2
3
4
5
6
7 | private:
QSlider *m_slider;
QSlider *m_slider2;
int Longueur;
int Largeur;
//apres tu initialise a 200 dans le constructeur et tu fais ta fenetre en donnant pour weith et heith tes variables
};
|
ensuite, a chaque fois que la valeur d'un de tes slide change, tu l'envoie vers un slot, par exemple, on imagine que la valeur de ton slide largeur a changée (je te met le connect et après le slot)
Code : C++1 | QObject::connect(m_sliderLargeur, SIGNAL(valueChanged(int)), this, SLOT(changerLargeur(int)));
|
Code : C++1
2
3
4
5 | void changerLargeur(int largeur)
{
Largeur = largeur;
setFixedSize(Largeur, Longueur());
}
|
et voila, maintenant, Largeur est égale a la valeur du slideLargeur dans ton slot ! tu fais la meme chose pour le slot changerLongueur.
voila, si ton problème est resolu, n'oublies pas de le mettre en résolu !
leopard
|
Saucisse transgénique
 Groupe : Membres
|
C'est un peu se compliquer la vie pour rien.
Le widget possède déjà les attributs height et width, il est donc inutile de créer d'autres attributs qui vont contenir les mêmes valeurs.
Sinon, quel problème rencontres-tu? Pour moi ton code est tout à fait valide.
|
The cake is a lie!
 Groupe : Membres
|
Citation : BoudBoulManC'est un peu se compliquer la vie pour rien.
Le widget possède déjà les attributs height et width, il est donc inutile de créer d'autres attributs qui vont contenir les mêmes valeurs.
+1. J'ajoute qu'il est possible d'avoir accès à un objet de type QSize avec la méthode size(). Le type QSize permet de d'accéder et de manipuler la hauteur/largeur brutalement, mais aussi avec un ratio.
|
http://cite-sciences.fr.nf Groupe : Membres
|
Merci a tous le problème est réglé
|