QT FRAGE beim erstellen eines programms
-
hi leute!
ich hab vor kurzem angefangen qt3 zu programmieren. nun hab ich aus meinem buch(DAS QT BUCH) ein beispielprogramm (ab)geschrieben:
text_groes.cpp#include <qapplication.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.h> #include <qlabel.h> #include "text_groes.h" int main (int argc, char *argv[]){ /*initialisierung des fensters*/ QApplication myapp(argc, argv); QWidget *mywidget= new QWidget (); mywidget -> setGeometry(400, 300, 460, 150); /*erstellen des sliders*/ QSlider *slider = new QSlider(0, 99, 1, 20, QSlider::Horizontal, mywidget); slider -> setGeometry(10, 10, 180, 30); /*erstellen der lcd anzeige*/ QLCDNumber *lcdnummer = new QLCDNumber(2, mywidget); lcdnummer -> setGeometry(60, 50, 80 ,50); lcdnummer -> display(20); /*erstellen des erhoehungsbuttons*/ QPushButton *mehr = new QPushButton("++", mywidget); mehr -> setGeometry(10, 110, 50, 30); mehr -> setFont(QFont("Courier", 18, QFont::Bold)); mehr -> setPaletteBackgroundColor(Qt::green); /*erstellen des erniedrigungsbuttons*/ QPushButton *weniger = new QPushButton("--", mywidget); weniger -> setGeometry(140, 110, 50, 30); weniger -> setFont(QFont("Courier", 18, QFont::Bold)); weniger -> setPaletteBackgroundColor(Qt::red); /*erstelle label zum darstellen der schrift*/ Schrift *anzeige = new Schrift ("Text", mywidget); anzeige -> setGeometry(200, 10, 250, 130); anzeige -> setFont(QFont("Times", 20)); anzeige -> setPaletteBackgroundColor(Qt :: white); /*connections -----------*/ QObject::connect(mehr, SIGNAL(pressed()), slider, SLOT(addStep())); QObject::connect(weniger, SIGNAL(pressed()), slider, SLOT(subtractStep())); QObject::connect(slider, SIGNAL(valueChanged(int)), lcdnummer, SLOT(display(int))); QObject::connect(slider, SIGNAL(valueChanged(int)), anzeige, SLOT(stelle_neu_dar(int))); /*beenden*/ myapp.setMainWidget(mywidget); mywidget -> show(); return myapp.exec(); }//end main
mit dem selbstgeschriebenen SLOT:
text_groes.h:#include <qlabel.h> class Schrift : public QLabel { Q_OBJECT public: Schrift(char const* text, QWidget *parent) : QLabel(text, parent) { } public slots: void stelle_neu_dar(int groesse){ setFont(QFont("Times", groesse)); repaint(); }//end stelle_neu_dar };//end class
qmake erstellt aus folgender *.pro datei das makefile:
CONFIG += qt warn_on release SOURCES = text_groes.cpp HEADERS = text_groes.cpp TARGET = text_groes
das makefile wird auch erstellt auch waenn ich make ausfuere wird doe *.o datei erstellt aber das linken klappt glaube ich nicht make spuckt mir folgende fehlermeldung aus:
[badbackslash@localhost schiebebalk]$ make g++ -o text_groes text_groes.o -L/usr/lib/qt-3.3/lib -L/usr/X11R6/lib -lqt-m t -lXext -lX11 -lm text_groes.o(.text+0x43d): In function `main': /home/rsickinger/c/qt_projekte/schiebebalk/text_groes.h:6: undefined reference t o `vtable for Schrift' text_groes.o(.text+0x444):/home/rsickinger/c/qt_projekte/schiebebalk/text_groes. h:6: undefined reference to `vtable for Schrift' text_groes.o(.text+0x46d): In function `main': /home/rsickinger/c/qt_projekte/schiebebalk/text_groes.cpp:37: undefined referenc e to `vtable for Schrift' collect2: ld gab 1 als Ende-Status zurück make: *** [text_groes] Fehler 1
was mache ich da falsch und/oder habe ich etwas vergessen??
mfg
--linuxuser--
-
Wenn es genau so im Buch steht, sollte es funktionieren. Aber du solltest mal deinen Code anders organisieren:
1. Verlager die Klasse Schrift in eine schrift.h und die Implementation in schrift.cpp
2. Implementiere den slot auch in der schrift.cpp.Wenn es dann immer noch nicht klappt, kannst du erneut fragen.
Da fällt mir grad auf, dass du in deiner *.pro Datei unter HEADERS eine *.cpp Datei eingetragen hast. Das kann schon der Fehler sein.
-
danke es funzelt...
stimmt bei der *.pro datei war der fehler
-
business cards for home inspectors , new berlin wi building inspectors . tampa fl building inspector , reston va home inspectors , home inspector rock hill sc , ca diego mold san testing .
hamilton oh home inspectors , santa rosa county building inspector burket . surburban home inspectors , carthage missouri building inspector , calgary inspector homes , building in inspector job massachusetts .
mold philadelphia remediation , water damage restoration dehumidifiers . average salary for home inspectors , south carolina home inspector , home inspector newsletters , wisconsin home inspectors .
jim hartshorne home inspector , home inspector requirements . home mold removal , home inspectors in virginia , online home inspector training safe guard , building inspector course montreal .home inspectors tx , test mold . hair removal laser damage , dishonest home inspectors louisville ky , home inspector certifications , basement waterproof price guide .
home inspector picture , removal of mold from houses . home inspector appraiser school tennessee , massachusetts building inspector association , (water damage restoration beech grove in ) . home inspectors jacksonville fl wdo inspections .
wisconsin home inspector license , building inspector in calgary . bleech mold removal , home inspector iowa lake spirit , water tests home inspectors , laser hair removal skin damage .
water damage restoration fort worth , water damage restoration denver co . sacramento toxic mold test , non toxic mold removal (all dry basement systems ). home inspector qualifications canada - home inspectors in mcallen texas .