Ich habe eine Klasse die von QwtDial erbt, in dieser möchte ich einen Slot verwenden.. sobald ich aber Q_OBJECT einfüge, hab ich einen Systemfehler wenn ich meine .exe ausführe.. das kompilieren funtioniert..
bei Klassen die von Qt Klassen erben funtioniert auch das ausführen der .exe .. hab mein qmake schon mehrmals neu drüber laufen lassen bringt alles nichts .. ist also nicht der Link Fehler mit dem immer alle kommen ..
hatte vielleicht jemand schon ein ähnliches problem ??
[GELÖST] Q_OBJECT funtioniert bei qwt Klasse nicht
-
insertcoin
- Beiträge: 54
- Registriert: 19. Mai 2008 13:08
[GELÖST] Q_OBJECT funtioniert bei qwt Klasse nicht
Zuletzt geändert von insertcoin am 7. August 2008 21:38, insgesamt 3-mal geändert.
Vor ein paar Monaten habe ich genau dasselbe (durch)gemacht (eigene Plugins welche von Qwt-Klassen erben) und stolperte da doch hin und wieder...
Kannst du noch ein paar Infos liefern wie:
- Befindet sich die neue Klasse direkt im Programm, oder in einer Library oder Plugin?
- Header deiner neuen Dial-Klasse
- pro-Datei deines Programms, Library oder Plugins
- genauer Wortlaut des "Systemfehlers"
Kannst du noch ein paar Infos liefern wie:
- Befindet sich die neue Klasse direkt im Programm, oder in einer Library oder Plugin?
- Header deiner neuen Dial-Klasse
- pro-Datei deines Programms, Library oder Plugins
- genauer Wortlaut des "Systemfehlers"
-
insertcoin
- Beiträge: 54
- Registriert: 19. Mai 2008 13:08
die klasse befindet sich im programm ..
die klasse hat keine headerfile, sondern ist in einer headerfile in der ich mehrere kleine klassen reinpacken möchte ..
in meiner DigitalTimer Klasse macht das makro keine Probleme ..
die .pro File sieht so aus, ich verwende nur Libraries ..
der Systemfehler tritt auf wenn ich die .exe starte und lautet:
The application failed to initialize properly (0xc0000005).Click on OK to terminate the application.
die klasse hat keine headerfile, sondern ist in einer headerfile in der ich mehrere kleine klassen reinpacken möchte ..
Code: Alles auswählen
#ifndef CLASSCOLLECTION_H
#define CLASSCOLLECTION_H
#include <qwt_dial.h>
#include <qpainter.h>
#include <qwt_dial_needle.h>
#include <QLCDNumber>
#include <QtGui>
#include <QObject>
class Dial : public QwtDial
{
public:
Dial(double gap, int dividingLines, int maxValue, int minValue = 0 )
{
setWrapping(false);
setReadOnly(true);
setOrigin(135.0);
setScaleArc(0.0, 270.0);
QwtDialSimpleNeedle *needle = new QwtDialSimpleNeedle(
QwtDialSimpleNeedle::Arrow, true, Qt::blue,
QColor(Qt::gray).light(130));
setNeedle(needle); // Nadel einsetzen
setScaleTicks(1, 4, 8);
setScale(1, dividingLines, gap);
setRange(minValue,maxValue); }
};
/******************************************************************************************************************/
class DigitalTimer : public QLCDNumber
{
Q_OBJECT
public:
QTime *time;
DigitalTimer()
{
setSegmentStyle(Filled);
time = new QTime(0,0);
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(showTime()));
timer->start(1000);
display(time->toString("mm:ss"));
}
private slots:
void showTime()
{
*time = time->addSecs(1);
display(time->toString("mm:ss"));
}
};
#endifdie .pro File sieht so aus, ich verwende nur Libraries ..
Code: Alles auswählen
######################################################################
# Automatically generated by qmake (2.01a) Thu Aug 7 15:53:14 2008
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += D:/programmieren/qwt-5.1.1/src
LIBS += -LD:/programmieren/qwt-5.1.1/lib
LIBS += -lqwt
# Input
HEADERS += classcollection.h led.h MainWindow.h page1.h page2.h
SOURCES += led.cpp main.cpp MainWindow.cpp page1.cpp page2.cppThe application failed to initialize properly (0xc0000005).Click on OK to terminate the application.
Genau daran sass ich ebenfalls ein paar TageThe application failed to initialize properly (0xc0000005).Click on OK to terminate the application.
Lass mich mal überlegen.. ich hab' den Code nicht gerade vor mir, aber versuch mal:
Code: Alles auswählen
DEFINES += QWT_DLL
[edit]
.. und hinterher ein sauberes "make distclean; qmake; make"
-
insertcoin
- Beiträge: 54
- Registriert: 19. Mai 2008 13:08