Une fois l'Add-In de Qt for Visual Studio installé c'est assez pratique, en double-cliquant sur le fichier .ui il s'ouvre dans Qt Designer. Je cherche à conserver qui ce a été créé par le Qt4 Template et conserver la même structure d'application.
Alors donc, que dois-je faire pour connecter un gestionnaire d’évènements à mon nouveau bouton ?
Après avoir bien lu la page suivante :
http://doc.qt.digia.com/qt/designer-using-a-ui-file.html
Je passe à l'action :
Dans mon application, j'ai repéré la ligne :
ui.setupUi(widget);
C'est la ligne :
ui.setupUi(this);
du fichier :
MyQt4Application\myqt4application.cpp
C'est après cette ligne que je vais pouvoir ajouter mon "connect"
Il faut également que j'atoute un private slot au bon endroit et que je code la fonction void onOkButtonClicked();
Je vais donc modifier les deux fichiers : myqt4application.h et myqt4application.cpp de la façon suivante :
myqt4application.h
#ifndef MYQT4APPLICATION_H
#define MYQT4APPLICATION_H
#include <QtGui/QMainWindow>
#include "ui_myqt4application.h"
class MyQt4Application : public QMainWindow
{
Q_OBJECT
public:
MyQt4Application(QWidget *parent = 0, Qt::WFlags flags = 0);
~MyQt4Application();
// BRY
private slots:
void onOkButtonClicked();
private:
Ui::MyQt4ApplicationClass ui;
};
#endif // MYQT4APPLICATION_H
myqt4application.cpp
#include "stdafx.h"
#include "myqt4application.h"
MyQt4Application::MyQt4Application(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
// BRY
connect(ui.okButton, SIGNAL(clicked()), this, SLOT(onOkButtonClicked()));
}
MyQt4Application::~MyQt4Application()
{
}
// BRY
void MyQt4Application::onOkButtonClicked()
{
QMessageBox::information(this, tr("Signal connected on a button"),
"You clicked the OK button!");
}
Le tag // BRY est là pour repérer facilement les lignes que j'ai modifiées par rapport à mon application de base crée automatiquement par Qt4 Template Application
Le tour est joué, ça fonctionne :
![]() |
A DialogBox is connected to the Ok button |
Aucun commentaire:
Enregistrer un commentaire