Parcourir la source

Dépôt initial

Rémi Synave il y a 2 ans
Parent
commit
b7b546550f
5 fichiers modifiés avec 127 ajouts et 1 suppressions
  1. 11 1
      README.md
  2. 69 0
      src/MainWindow.cpp
  3. 25 0
      src/MainWindow.hpp
  4. 12 0
      src/main.cpp
  5. 10 0
      src/miniQt.pro

+ 11 - 1
README.md

@@ -1,3 +1,13 @@
 # miniQt
 
-Programme minimal en Qt
+Programme minimal en Qt montrant l'utilisation des calques, des étiquettes, des zones de texte et des boutons. Le programme illustre également la connexion entre le clic d'un bouton et l'exécution d'une méthode.
+
+Prérequis
+---------
+Avoir installé la bibliothèque Qt
+
+Compilation/exécution
+---------------------
+qmake
+make
+./miniQt

+ 69 - 0
src/MainWindow.cpp

@@ -0,0 +1,69 @@
+#include <QWidget>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+
+#include "MainWindow.hpp"
+
+
+MainWindow::MainWindow ()
+{
+  setWindowTitle (tr ("miniQt"));
+
+  // Création de la zone de travail centrale
+  QWidget *central = new QWidget (this);
+  setCentralWidget (central);
+
+  // On va organiser les différents éléments dans un
+  // calque vertical
+  QVBoxLayout *vLayout = new QVBoxLayout (central);
+  // Calque qu'on assigne à la zone de travail centrale
+  central->setLayout (vLayout);
+
+  // Création d'un label
+  label = new QLabel ("Coucou !", central);
+  // qu'on centre
+  label->setAlignment (Qt::AlignCenter);
+  // et qu'on ajoute à la première ligne de notre calque
+  vLayout->addWidget (label);
+
+  // La seconde ligne de notre calque vertical sera composé
+  // de plusieurs éléments les uns derrière les autres.
+  // On crée donc un calque horizontal
+  QHBoxLayout *hLayout = new QHBoxLayout (central);
+  // qu'on affecte à la seconde ligne de notre calque vertical
+  vLayout->addLayout (hLayout);
+
+  // On crée une zone de texte
+  text = new QTextEdit (QString ("Tu veux voir ma"), central);
+  // dont on fixe la taille en hauteur
+  text->setMaximumHeight (27);
+  // et qu'on assigne à la première case de notre
+  // calque horizontal (donc dans la seconde ligne
+  // du calque vertical
+  hLayout->addWidget (text);
+
+  // On crée un bouton aevc le texte "cliquez moi !"
+  button = new QPushButton ("cliquez moi !", central);
+  // qu'on ajoute à la suite de la zone de texte
+  // dans le calque horizontal - donc toujours dans
+  // la seconde ligne du calque vertical
+  hLayout->addWidget (button);
+
+  // On crée un dernier label qu'on ajoute à la suite
+  // du bouton dans le calque horizontal...
+  label2 = new QLabel ("?", central);
+  hLayout->addWidget (label2);
+
+  // Création de la connexion entre le clic sur le bouton
+  // et l'exécution de la méthode clic.
+  // Cette méthode sera appelée lors du clic sur le bouton.
+  connect (button, SIGNAL (clicked (bool)), this, SLOT (clic ()));
+}
+
+void
+MainWindow::clic ()
+{
+  // Lors du clic sur le bouton, cette méthode est
+  // appelée et modifie le texte sur le bouton.
+  button->setText ("belle interface graphique");
+}

+ 25 - 0
src/MainWindow.hpp

@@ -0,0 +1,25 @@
+#ifndef MAINWINDOW_HPP
+#define MAINWINDOW_HPP
+
+#include <QMainWindow>
+#include <QLabel>
+#include <QTextEdit>
+#include <QPushButton>
+
+
+class MainWindow:public QMainWindow
+{
+Q_OBJECT private:
+  QLabel * label;
+  QTextEdit *text;
+  QPushButton *button;
+  QLabel *label2;
+
+  private slots:void clic ();
+
+public:
+    MainWindow ();
+
+};
+
+#endif

+ 12 - 0
src/main.cpp

@@ -0,0 +1,12 @@
+#include <QApplication>
+
+#include "MainWindow.hpp"
+
+int
+main (int argc, char *argv[])
+{
+  QApplication app (argc, argv);
+  MainWindow window;
+  window.show ();
+  return app.exec ();
+}

+ 10 - 0
src/miniQt.pro

@@ -0,0 +1,10 @@
+QT += core gui widgets
+
+HEADERS = MainWindow.hpp
+                
+SOURCES = MainWindow.cpp \
+          main.cpp
+
+# install
+target.path = $$[QT_INSTALL_EXAMPLES]/miniQt
+INSTALLS += target