Hallo
Ich möchte das Datum, welches der User über die QDateTimeEdit Funktion eingeben kann an eine Funktion senden. Ich schreib mal am besten meinen Quelltext:
int jahr=2004;
int tag=26;
int monat=12;
class QLCDNumber;
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent=0,const char *name=0);
Ich möchte also die globalen integer Variablen tag,jahr und monat auf die vom User eingestellten Werte ändern. Könnt ihr mir vielleicht helfen?
danke schon mal im Vorraus
tja man sollte das Programm am besten immer vorher selber ausprobieren, bevor man es hier ins Forum gibt. Tut mir leid, waren noch ein paar Fehler drinnen.
Jetzt funktioniert es aber prima:
Kann uebrigens sein, dass da mit den Headerdateien nicht alles korrekt ist. Ich programmier immer in mehreren Dateien und mit dem Designer. Wenn nicht laeuft, vergiss nicht die #include <qdatetimeedit.h>!
Danke erstmal für deine Hilfe. Das Problem ist, dass ich das alles in ein größeres Programm einbauen will und ich da immer noch das Problem bekomme:
No such slot QWidget::bla(const QDate&)
Bei deinem Programm bekomme ich ich auch ein Haufen Fehlermeldungen. Könntest du mir vielleicht die .ui und die .ui.h schicken? Komm einfach nicht weiter. Vielen Dank jedenfalls nochmal.
Robert
Hallo hab jetzt den Fehler gefunden, warum er die SLOTS nicht gefunden hatte. Hatte Q_Object nicht drinn. Jetzt bekomme ich, wenn ich mit dem Befehl: g++ date2.cpp -Wall -I/usr/lib/qt3/include -L/usr/lib/qt3/lib -lqt-mt
aber folgende Fehler:
/tmp/cczIpDsc.o(.text+0x22): In function `MyWidget::MyWidget[not-in-charge](QWidget*, char const*)':
: undefined reference to `vtable for MyWidget'
/tmp/cczIpDsc.o(.text+0x2e): In function `MyWidget::MyWidget[not-in-charge](QWidget*, char const*)':
: undefined reference to `vtable for MyWidget'
/tmp/cczIpDsc.o(.text+0xd90): In function `MyWidget::MyWidget[in-charge](QWidget*, char const*)':
: undefined reference to `vtable for MyWidget'
/tmp/cczIpDsc.o(.text+0xd9c): In function `MyWidget::MyWidget[in-charge](QWidget*, char const*)':
: undefined reference to `vtable for MyWidget'
/tmp/cczIpDsc.o(.text+0x1b00): In function `MyWidget::languageChange()':
: undefined reference to `MyWidget::tr(char const*, char const*)'
/tmp/cczIpDsc.o(.gnu.linkonce.t._ZN8MyWidgetD1Ev+0xb): In function `MyWidget::~MyWidget [in-charge]()':
: undefined reference to `vtable for MyWidget'
/tmp/cczIpDsc.o(.gnu.linkonce.t._ZN8MyWidgetD1Ev+0x17): In function `MyWidget::~MyWidget [in-charge]()':
: undefined reference to `vtable for MyWidget'
collect2: ld returned 1 exit status
Hab in einem anderen Forum gefunden, dass ich die Datei mit KDevelop kompilieren soll, was auch funktioniert, nur möchte ich das Programm mit KDevelop erstellen, kommen ähnliche Fehler in der .o und .moc Datei. Kann mir bitte jemand weiterhelfen. In Qt einzusteigen ist echt kein Spaziergang.
Danke schon mal
Robert
Ich entwickle zwar derweil unter Windows, aber das sieht sehr bekannt aus. Hast Du darauf geachtet, dass eine Datei, die Q_OBECTS enthält auch mit dem moc - Compiler bearbeitet werden muss (Projekt Einstellung für diese Datei)
Für Visual C++ gibt es von Qt ein kleines Makro (Toolbutton), mit dem man eine solche Header Datei einfach moc'en kann. Es werden automatisch die Projekteinstellungen für diese Datei angepasst, so dass das dieser Vorgang für jede Datei nur einmal nötig ist.
Dabei werden m.E. zusätzliche moc_***.cpp dateien erzeugt, die in das Projekt eingebunden und kompiliert werden (müssen). Die enthalten dann den Programmcode, der hier wahrscheinlich vermisst wird.
Ich hoffe ich verbreite nicht Allgemeinplätze (zumal ich derzeit nicht unter KDevelob entwickle)