Bonjour,
je pense que le sujet a déjà dû être traité mais je ne parviens pas à trouver ce que je cherche...
Mon problème c'est que jusqu'à maintenant je me suis focalisé sur le C "bas niveau" sur des microcontrôleurs, donc niveau interruption, registres, manipulation des types, variables locales et globales... je maitrise à peu près.
Comme je compte passer sur des microcontrôleurs plus puissants (STM32F7 de chez ST Microelectronics), je voudrais m'amuser avec le C++ (dans un premier temps sur PC avant l'export sur micro)
Le problème c'est que j'y connais rien, je débute avec les classes, les déclarations privées, publiques, signaux, slots... et je suis un peu perdu.
Je ne trouve pas de programme d'exemple complets pour des fonctions simples : Ce que je cherche, c'est un projet complet avec une structure "propre" (j'utilise Qt Creator 5.5 avec MinGW).
J'ai un projet bien précis en tête et sur papier. Celui-ci mettra en oeuvre QTimer, la sauvegarde et la lecture de fichiers XML, la création et la destruction d'objets (graphiques ou non).
Mais avant cela je dois être sur que la structuration est bonne.
J'ai fait un petit projet de test pour utiliser QTimer, qui ne fonctionne pas évidemment, sinon ce serait trop facile
Messages lors de la compilation :
Starting ...\Qt Projects\build-TEST_Timer-Desktop_Qt_5_5_1_MinGW_32bit-Debug\debug\TEST_Timer.exe...
Le programme s'est terminé subitement.
...\Qt Projects\build-TEST_Timer-Desktop_Qt_5_5_1_MinGW_32bit-Debug\debug\TEST_Timer.exe crashed
Erreurs lors du debug :
(!) Cannot open output file debug/TEST_Timer.exe : Permission denied
(!) Error ID returned 1 exit status
Ce que j'aimerais faire dans un premier temps, c'est utiliser une ProgressBar qui s'incrémente toutes les secondes.
Voilà ce que j'ai fait :
mainwindow.h
mainwindow.cppCode:#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QFile> #include <QFileInfo> #include <QFileDialog> #include <QWidget> #include <QTimer> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QTimer *timer; int flash(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
main.cppCode:#include "mainwindow.h" #include "ui_mainwindow.h" int i; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(timer, SIGNAL(timeout()), this, SLOT(flash())); timer->start(1000); } MainWindow::~MainWindow() { delete ui; } // Function called every 1000ms : set in timer->start(1000); int MainWindow::flash() { i++; ui->progressBar->setValue(i); return 0; }
Dans l'interface graphique mainwindow.ui j'ai seulement un widget progressBar...Code:#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
Est-ce que vous pourriez m'aider à remettre de l'ordre dans tout ça, où est-ce que je dois déclarer le prototype de ma fonction flash() et où est-ce que je dois déclarer la fonction? est-ce qu'il manque des éléments?...
Merci beaucoup
-----