linken?!
-
qtmain.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual bool __thiscall Schrift::qt_property(int,int,class QVariant *)" (?qt_property@Schrift@@UAE_NHHPAVQVariant@@@Z)
qtmain.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual bool __thiscall Schrift::qt_emit(int,struct QUObject *)" (?qt_emit@Schrift@@UAE_NHPAUQUObject@@@Z)
qtmain.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual bool __thiscall Schrift::qt_invoke(int,struct QUObject *)" (?qt_invoke@Schrift@@UAE_NHPAUQUObject@@@Z)
qtmain.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual void * __thiscall Schrift::qt_cast(char const *)" (?qt_cast@Schrift@@UAEPAXPBD@Z)
qtmain.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual char const * __thiscall Schrift::className(void)const " (?className@Schrift@@UBEPBDXZ)diese fehlermeldungen kommen, wenn ich kompilieren will: ein qt programm in vc++ 6.0
habe eine headerdatei, die ich einbinde
jmd nen hint
-
einfach den linker richtig einstellen
$(QTDIR)\lib\qt-mt230nc.lib $(QTDIR)\lib\qtmain.lib
muss mit zu den linkereinstellungen.
schau dir mal die beispiele an, die bei der installation von qt unter windows dabei sind
-
Das ist ja drinne nur jetzt kommt aufeinmal
LINK : warning LNK4044: Nicht erkannte Option "mteval305.lib"; ignoriert
LINK : warning LNK4044: Nicht erkannte Option "mteval305.lib"; ignoriert
LINK : fatal error LNK1104: Datei "main.lib" kann nicht geoeffnet werdenwenn ich aber nen example öffne dann gehts?!
-
hi
mir ist unklar, was du machst.
habe mal experimentiert und verschiedene libs nacheinander rausgenommen, aber diesen fehler krieg ich nicht gefasst.ich würde ein projekt kopieren aus den beispielen, und dort nochmal dasselbe machen.
achtung: die projekte beziehen sich aufeinander
die qt_main... fehlermeldung ist auf jeden durch linken der zweiten lib weg.
-
du mir ists auch unklar
öffne ich ein vorgegebenes example, läuft alles einwadfrei.
sobald ich jedoch nen eigenes projekt mache
kommt dann nicht mehr die erste fehlermeldung, sondern die das er eben main.lib nicht öffnen kann????
-
einfachste methode:
kopier die hello world
pack den code raus und tu eigenen rein.
wenn das dann nicht geht, poste den code
-
also hab jetzt hello world mit eigenem code unbennant
und es geht net, es kommen die selben fehler, wie die dich als erstes geposted hatte.
hier der code
#include <qapplication.h> #include <qlabel.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.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(); } }; int main(int argc, char ** argv) { QApplication myapp(argc,argv); QWidget *MyWidget = new QWidget(); MyWidget->setGeometry(400,300,200,200); //Schiebebalken QSlider *MySlider = new QSlider(0, 99, 1,//SChrittweite 0,//Startwert QSlider::Horizontal, MyWidget); MySlider->setGeometry(10,10,180,30); //LCD QLCDNumber *MyLCDNum = new QLCDNumber(2,MyWidget); MyLCDNum->setGeometry(60,50,80,50); MyLCDNum->display(0); QObject::connect(MySlider,SIGNAL(valueChanged(int)),MyLCDNum,SLOT(display(int))); QPushButton *Decrement = new QPushButton("-",MyWidget); Decrement->setGeometry(10,110,50,30); Decrement->setPalette(QPalette(QColor(255,0,0),Qt::white)); QPushButton *Increment = new QPushButton("+",MyWidget); Increment->setGeometry(140,110,50,30); Increment->setPalette(QPalette(QColor(0,255,0),Qt::white)); QObject::connect(Decrement,SIGNAL(clicked()),MySlider,SLOT(subtractStep())); QObject::connect(Increment,SIGNAL(clicked()),MySlider,SLOT(addStep())); //Label Schrift *Anzeige = new Schrift("Slot 'stelle neu dar' ändert Textgröße!",MyWidget); Anzeige->setGeometry(200,10,250,130); Anzeige->setPalette(QPalette(Qt::white,Qt::white)); QObject::connect(MySlider,SIGNAL(valueChanged(int)),Anzeige,SLOT(stelle_neu_dar(int))); QPushButton *buttonQuit = new QPushButton("Quit",MyWidget); buttonQuit->setGeometry(10,150,180,30); QObject::connect(buttonQuit,SIGNAL(clicked()),&myapp,SLOT(quit())); myapp.setMainWidget(MyWidget); MyWidget->show(); return myapp.exec(); }
-
oki
der code funzt bis auf die auskommentierten stellen...
da benutzt du irgendwas, was einen neuen header braucht..
int main(int argc, char ** argv) { QApplication myapp(argc,argv); QWidget *MyWidget = new QWidget(); MyWidget->setGeometry(400,300,200,200); //Schiebebalken QSlider *MySlider = new QSlider(0, 99, 1,//SChrittweite 0,//Startwert QSlider::Horizontal, MyWidget); MySlider->setGeometry(10,10,180,30); //LCD QLCDNumber *MyLCDNum = new QLCDNumber(2,MyWidget); MyLCDNum->setGeometry(60,50,80,50); MyLCDNum->display(0); QObject::connect(MySlider,SIGNAL(valueChanged(int)),MyLCDNum,SLOT(display(int))); QPushButton *Decrement = new QPushButton("-",MyWidget); Decrement->setGeometry(10,110,50,30); Decrement->setPalette(QPalette(QColor(255,0,0),Qt::white)); QPushButton *Increment = new QPushButton("+",MyWidget); Increment->setGeometry(140,110,50,30); Increment->setPalette(QPalette(QColor(0,255,0),Qt::white)); QObject::connect(Decrement,SIGNAL(clicked()),MySlider,SLOT(subtractStep())); QObject::connect(Increment,SIGNAL(clicked()),MySlider,SLOT(addStep())); //Label /* Schrift *Anzeige = new Schrift("Slot 'stelle neu dar' ändert Textgröße!",MyWidget); //!!!!!!problem. Anzeige->setGeometry(200,10,250,130); Anzeige->setPalette(QPalette(Qt::white,Qt::white)); QObject::connect(MySlider,SIGNAL(valueChanged(int)),Anzeige,SLOT(stelle_neu_dar(int))); QPushButton *buttonQuit = new QPushButton("Quit",MyWidget); buttonQuit->setGeometry(10,150,180,30); QObject::connect(buttonQuit,SIGNAL(clicked()),&myapp,SLOT(quit()));*/ myapp.setMainWidget(MyWidget); MyWidget->show(); return myapp.exec(); }
mal suchen, was dazu nötig ist,
*wegeditiert, *g**[ Dieser Beitrag wurde am 14.03.2003 um 18:08 Uhr von elise editiert. ]
-
nimm in der klasse schrift das
Q_OBJECT
raus, dann gehts...
nette applikation
-
ich glaube gelesen zu haben, dass man das macro Q_OBJECT
bei jeder abgeleiteten klasse benutzen MUSS.
ich weiss ist ncihts weltbewegendes nur arbeite ich mich grade in QT ein
p.s. komisch das es wirklich funzt ???
-
hmm naja aber eigentlich sollte man ja durch drücken auf + bzw + die schrift darin verändern das klappt aber net