Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > height() et width() > Lecture du sujet

height() et width()

Exercice : redimensionner la fenêtre en hauteur

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne amriamir # Posté le 08/07/2008 à 10:27:53
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
 
Hors ligne leopard # Posté le 08/07/2008 à 10:34:08
Avatar
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.

mon site : http://sixelasite.free.fr/
les commentaires sont les bienvenus :)
 
Hors ligne amriamir # Posté le 08/07/2008 à 10:41:22
http://cite-sciences.fr.nf
Groupe : Membres
Merci leopard je vais essayer :D
 
Hors ligne leopard # Posté le 08/07/2008 à 11:02:17
Avatar
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

mon site : http://sixelasite.free.fr/
les commentaires sont les bienvenus :)
 
Hors ligne BoudBoulMan # Posté le 08/07/2008 à 11:17:52
Saucisse transgénique
Avatar
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.
Hors ligne MatteX # Posté le 08/07/2008 à 14:36:10
The cake is a lie!
Avatar
Groupe : Membres
Citation : BoudBoulMan
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.


+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.

liens utiles: FAQ C++ (developpez.com) | GotAPI.com | H-Deb
Mon futur ex-blog | Logique : http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Propriétaire d'un Dell Inspiron 1720, Core 2 Duo 2.4Ghz, 3Go DDR2, 8600M GT 256Mo. Avec Blu-Ray!
 
Hors ligne amriamir # Posté le 08/07/2008 à 20:42:52
http://cite-sciences.fr.nf
Groupe : Membres
Merci a tous le problème est réglé
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 92 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0779s (0.059s)