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