Bonjour, je teste actuellement QWidget::sizeHint() pour une future application qui au cour de son exécution peut changer de dimensions...
J'ai le code suivant :
main.cpp
Fenetre.hpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "Fenetre.hpp" int main(int argc, char *argv[]) { QApplication app(argc, argv); Fenetre i; return app.exec(); }
Fenetre.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #ifndef FENETRE_HPP #define FENETRE_HPP #include <QtGlobal> #include <QtCore> #include <QtGui> class Fenetre : public QWidget { Q_OBJECT private: QPushButton* m_buttonA; QPushButton* m_buttonB; int m_size; protected: public: Fenetre(QWidget* widgetParent = 0); virtual ~Fenetre(); virtual QSize sizeHint() const; Q_SLOT void setButton(); Q_SLOT void setSize(); }; #endif // FENETRE_HPP
Quand je clique sur le bouton B, le widget n'est pas redimensionner, pourquoi ? Suis-je obliger de passer par QWidget::resize() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #include "Fenetre.hpp" Fenetre::Fenetre(QWidget* widgetParent) : QWidget(widgetParent), m_size(150) { m_buttonA = new QPushButton("Clique ! A", this); QObject::connect(m_buttonA, SIGNAL(clicked()), this, SLOT(setButton())); m_buttonB = new QPushButton("Clique ! B", this); QObject::connect(m_buttonB, SIGNAL(clicked()), this, SLOT(setSize())); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(m_buttonA); layout->addWidget(m_buttonB); this->setLayout(layout); this->show(); } Fenetre::~Fenetre() { } QSize Fenetre::sizeHint() const { return QSize(m_size, m_size); } void Fenetre::setButton() { m_buttonA->setText(QString::number(this->width()) + " et " + QString::number(this->height())); } void Fenetre::setSize() { int newSize = 500; m_size = newSize; this->updateGeometry(); }
Merci d'avance pour votre aide.
Partager