Bonsoir,
je suis au chapitre 5 du tutorial en anglais de Qt
J'ai fais un nouveau bouton appelé plus.
Il est sensé faire augmenter la bar de volume par exemple si on clic dessus or il ne se passe rien..
Dev-C++ ne retourne aucune erreur.
class MyWidget : public QWidget { public:
MyWidget(QWidget *parent = 0); };
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent) { /* initialisation du clique pour augmenter le curseur "volume"(exemple) */ int cliquePlus = 0;
QPushButton *quit = new QPushButton(tr("Quit"));
quit->setFont(QFont("Times", 18, QFont::Bold)); /* Création du bouton + */
QPushButton *plus = new QPushButton(tr("+"));
plus->setFont(QFont("Times", 16, QFont::Bold));
QLCDNumber *lcd = new QLCDNumber(2);
lcd->setSegmentStyle(QLCDNumber::Filled);
QSlider *slider = new QSlider(Qt::Horizontal);
slider->setRange(0, 99);
slider->setValue(0);
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit())); /* S'il clique sur le bouton alors on ajoute +5 de volume (exemple) */
connect(plus, SIGNAL(clicked()), qApp, SLOT(display((cliquePlus+5)))); /* mise à jour de clique sur plus */
cliquePlus = cliquePlus;
Je ne suis pas extrèmement fort en anglais donc j'ai fais comme j'ai compris le code.
Bref, je ne comprend pas pourquoi lorsqu'on clique sur le bouton + il ne se passe rien.
class MyWidget : public QWidget {
Q_OBJECT // pouvoir utiliser les slots dans ta classe
public:
MyWidget(QWidget *parent = 0);
public slots: // rajout de public devant slots void augmenterSlider();
private:
QSlider *slider; // seule adresse utile à garder dans ce cas };
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent) { /* initialisation du clique pour augmenter le curseur "volume"(exemple) */ // int cliquePlus = 0; // inutile
QPushButton *quit = new QPushButton(tr("Quit"));
quit->setFont(QFont("Times", 18, QFont::Bold)); /* Création du bouton + */
QPushButton *plus = new QPushButton(tr("+"));
plus->setFont(QFont("Times", 16, QFont::Bold));
QLCDNumber *lcd = new QLCDNumber(2);
lcd->setSegmentStyle(QLCDNumber::Filled);
slider = new QSlider(Qt::Horizontal); // cf : plus haut
slider->setRange(0, 99);
slider->setValue(0);
connect(quit, SIGNAL(clicked()), qApp, SLOT(quit())); /* S'il clique sur le bouton alors on ajoute +5 de volume (exemple) */ // connect(plus, SIGNAL(clicked()), qApp, SLOT(display( (cliquePlus+5) ))); // pourquoi display sur qApp ??? display n'existe pas dans QApplication !
connect(plus, SIGNAL(clicked()), this, SLOT(augmenterSlider())); // appel du slot perso /* mise à jour de clique sur plus */ //cliquePlus = cliquePlus; // à quoi sert ce code ???
Compilateur: Default compiler
Building Makefile: "D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\chapitre 5\Makefile.win"
Exécution de make...
make.exe -f "D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\chapitre 5\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:\Qt\4.3.0\include\QtGui" -I"C:\Qt\4.3.0\include\QtCore" -I"C:\Qt\4.3.0\include" -I"." -I"C:\Qt\4.3.0\include\ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:\Qt\4.3.0\mkspecs\win32-g++"
main.cpp:17: error: expected primary-expression before "void"
main.cpp:17: error: ISO C++ forbids declaration of `type name' with no type
main.cpp:17: error: expected `;' before "void"
main.cpp:65: error: no `void MyWidget::augmenterSlider()' member function declared in class `MyWidget'
main.cpp:77:61: main.moc: No such file or directory
mon disque dur est partitionnée en deux partit.
La partit D:\ est là où windows est installé.
La partit C:\ est là où Qt et Dev-C++ sont installé.
Quand je vais dans la console windows (cmd.exe) je ne peux pas aller dans la partition C.
cd C:\
ne fonctionne pas.
Détail de ce qu'a déja dit Hiura :
Pour aller dans un Disque D, alors il faut taper uniquement D: dans le terminal.
Voilà ce qui devrait exactement se passer :
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
D:\Documents and Settings\Propriétaire>C:
C:\>cd C:\Qt\4.3.0\qmake
C:\Qt\4.3.0\qmake>qmake.exe
C:\Qt\4.3.0\qmake>moc main.cpp
main.cpp:0: Warning: No relevant classes found. No output generated.
C:\Qt\4.3.0\qmake>make D:\Documents and Settings\Propriétaire\Mes documents\prog
ramme test C-C++\Qt 4\chapitre 5\main.cpp
'mingw32-make' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
C:\Qt\4.3.0\qmake>moc D:\Documents and Settings\Propriétaire\Mes documents\progr
amme test C-C++\Qt 4\chapitre 5\main.cpp
moc: Too many input files specified
Usage: moc [options] <header-file>
-o<file> write output to file rather than stdout
-I<dir> add dir to the include path for header files
-E preprocess only; do not generate meta object code
-D<macro>[=<def>] define macro, with optional definition
-U<macro> undefine macro
-i do not generate an #include statement
-p<path> path prefix for included file
-f[<file>] force #include, optional file name
-nw do not display warnings
-v display version of moc
C:\Qt\4.3.0\qmake>moc D:\Documents and Settings\Propriétaire\Mes documents\progr
amme test C-C++\Qt 4\chapitre 5\make.pro
moc: Too many input files specified
Usage: moc [options] <header-file>
-o<file> write output to file rather than stdout
-I<dir> add dir to the include path for header files
-E preprocess only; do not generate meta object code
-D<macro>[=<def>] define macro, with optional definition
-U<macro> undefine macro
-i do not generate an #include statement
-p<path> path prefix for included file
-f[<file>] force #include, optional file name
-nw do not display warnings
-v display version of moc
C:\Qt\4.3.0\qmake>cd..
C:\Qt\4.3.0>cd..
C:\Qt>cd.
C:\Qt>cd..
C:\>D:
D:\Documents and Settings\Propriétaire>cd D:\Documents and Settings\Propriétaire
\Mes documents\programme test C-C++\Qt 4\chapitre 5
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>make
'mingw32-make' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>
Bon alors tu t'emèle un peu les patte là je crois .
Je vais te proposer une méthode facile.
Suis ces étape et tout ce passera bien.
1 : Pour commencer je considère que tu as installer Qt là : C:\Qt\4.3.0\.
2 : Vérifie que la variable PATH contienne bien C:\Qt\4.3.0\ comme répértoire.
3 : Rends toi avec la console jusqu'à ton projet (dans ce ddossier, il ne dois y avoir que les fichier de ton projet et pas ceux d'un autre).
4 : Entre "qmake -Project"
5 : Un fichier .pro viens de se créer. Si tu utilises plus que le core et la gui de Qt, lis le point 6, sinon le 7.
6 : Tu utilise une autre partie de Qt que le core et la gui (par exemple "network"). Ouvre le fichier .pro avec un éditeur classique et rajoute une ligne : "QT += [cequejutiliseenplus]" par ex. remplace "[cequejutiliseenplus]" par network.
7 : Dans la console entre "qmake".
8 : Entre ensuite "make".
9 : Tu as fini.
2 : Vérifie que la variable PATH contienne bien C:\Qt\4.3.0\ comme répértoire.
non, c'est "C:\Qt\4.3.0\bin" (ou %QTDIR%\bin si %QTDIR% existe) et aussi le chemin vers le dossier bin de mingw (par défaut : C:\mingw\bin) pour make et g++
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
D:\Documents and Settings\Propriétaire>cd D:\Documents and Settings\Propriétaire
\Mes documents\programme test C-C++\Qt 4\chapitre 5
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake -Project
***Unknown option -Project
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.qrc; *.h; *.hpp; *.hh;
*.hxx; *.cpp; *.cc; *.cxx
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be parsed *
* before [files]. *
-o file Write output to file
-unix Run in unix mode
-win32 Run in win32 mode
-macx Run in Mac OS X mode
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-after All variable assignments after this will be
parsed after [files]
-norecursive Don't do a recursive search
-recursive Do a recursive search
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake -Projet1
***Unknown option -Projet1
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.qrc; *.h; *.hpp; *.hh;
*.hxx; *.cpp; *.cc; *.cxx
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be parsed *
* before [files]. *
-o file Write output to file
-unix Run in unix mode
-win32 Run in win32 mode
-macx Run in Mac OS X mode
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-after All variable assignments after this will be
parsed after [files]
-norecursive Don't do a recursive search
-recursive Do a recursive search
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake -Project
***Unknown option -Project
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.qrc; *.h; *.hpp; *.hh;
*.hxx; *.cpp; *.cc; *.cxx
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be parsed *
* before [files]. *
-o file Write output to file
-unix Run in unix mode
-win32 Run in win32 mode
-macx Run in Mac OS X mode
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-after All variable assignments after this will be
parsed after [files]
-norecursive Don't do a recursive search
-recursive Do a recursive search
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake -Project *.cpp *.h
***Unknown option -Project
Usage: qmake [mode] [options] [files]
QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.qrc; *.h; *.hpp; *.hh;
*.hxx; *.cpp; *.cc; *.cxx
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory
Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings
Options:
* You can place any variable assignment in options and it will be *
* processed as if it was in [files]. These assignments will be parsed *
* before [files]. *
-o file Write output to file
-unix Run in unix mode
-win32 Run in win32 mode
-macx Run in Mac OS X mode
-d Increase debug level
-t templ Overrides TEMPLATE as templ
-tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
-help This help
-v Version information
-after All variable assignments after this will be
parsed after [files]
-norecursive Don't do a recursive search
-recursive Do a recursive search
-cache file Use file as cache [makefile mode only]
-spec spec Use spec as QMAKESPEC [makefile mode only]
-nocache Don't use a cache file [makefile mode only]
-nodepend Don't generate dependencies [makefile mode only]
-nomoc Don't generate moc targets [makefile mode only]
-nopwd Don't look for files in pwd [project mode only]
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake -project
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>qmake
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>make
'mingw32-make' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
D:\Documents and Settings\Propriétaire\Mes documents\programme test C-C++\Qt 4\c
hapitre 5>
chapitre 5.pro
######################################################################
# Automatically generated by qmake (2.01a) mer. 1. août 19:50:01 2007
######################################################################
je n'est pas le dossier MinGW dans aucune des deux partitions.
tu l'as forcément car il faut mingw 3.4.2 pour compiler avec Qt (les autres versions de Qt, les autres compilateurs ne sont pas supportés).
tu compiles comment alors ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.