Ajouter un boutons par programmation : QPushButton

Ajouter un bouton

Dans l'entête (.h) de la fenêtre propriétaire déclarer le bouton ne pas oublier d'inclure la bibliothèque) :

#include <QtWidgets/QPushButton>

......

public:

    QPushButton *bouton1;

.......

Dans le fichier source (.cpp)

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);
............

    bouton1 = new QPushButton("texte dans le bouton",this);//ajoute le bouton dans la classe Mainwindow (spécifié par this)

.........

}

Changer la position et taille du bouton

.....

bouton1->setGeometry(0,50,100,100);//positionH, positionV, tailleH, tailleV

.....

Changer l'icône du bouton

Il est préférable au départ de créer une ressource, avec un prefix (icones par exemple) et d'y placer les icones.        

....

bouton1->setIcon(QIcon(":/icones/HARDNOVA.BMP"));

.....

Pour changer la couleur, voir dans le chapitre suivant.

Changer la taille de l'icone dans le bouton

              bouton1->setIconSize(QSize(95,95));//pour une image de 95x95

              bouton1->setIcon(QIcon(":/icones/HARDNOVA.BMP"));

Transformer un bouton monostable en bouton bistable

La propriété Setcheckable permet de transformer le Pushbutton en bouton bistable.

Dans le code .cpp

....

    boutonR=new QPushButton("R", this);

    boutonR->setCheckable(true);

    boutonR->setGeometry(60,75,50,50);//positionH, positionV, tailleH, tailleV

....

Associer un slot à un bouton

Dans le fichier source (cpp) de la fenêtre contenant le bouton (bouton1) lier par une connexion le bouton au slot (ici méthode clicbouton1() ) qui réagira au clic gauche (clicked()) sur le bouton.

QObject::connect(bouton1, SIGNAL(clicked()), this, SLOT(boutonclic1()));

Dans l'entête (.h) déclarer le slot :

public slots:

        void boutonclic();

Dans le code de la fenêtre :

void MainWindow::boutonclic1()

{

    instructions qui s'executent suite au clic de la souris

}


Ajouter un bouton avec QT Designer

On peut aussi dessiner un bouton dans QT Designer et le lier automatiquement à un slot


Voir un exemple plus complet de damier composé de boutons.