hier eine Klasse DateValidator, die ich zusammen mit QLineEdit verwende, weil mir QDateEdit nicht gefällt. Man kann sich das Trennzeichen aussuchen (01-02-2005 oder 01.02.2005 oder was auch immer...natürlich keine Zahl) und eine Jahrhundergrenze eingeben
Jahrhundergrenze = 50
-> Die Eingabe von 010249 führt zu 01.02.2049
-> Die Eingabe von 010250 führt zu 01.02.1950
ansonsten einfach die Klasse mal ausprobieren.
Code: Alles auswählen
DateValidator *pDateValidator = new DateValidator(this,"Date"); // this gleich aktuelles Widget
pDateValidator->SetLineEdit( ... Zeiger auf irgendein Lineedit ...)
pDateValidator->SetLineEdit( ... Zeiger auf das nächste Lineedit ...)
// bei bedarf
connect(pDateValidator,SIGNAL(dateChanged(const QDate&), this, SLOT(...)));
Gruss Arne
PPS.: Ich habe dem Attachment auch die Klasse Kalender zugefügt (die ist leider sehr alt und ausgesprochen schlecht strukturiert und kommentiert. Die Klasse stellt ein Kalenderwidget zur Verfügung. Es müssen nur der Zeiger auf QLineEdit und QTooBar übergeben werden, den Rest besorgt die Kalender Klasse (auch den Einsat des DateValidators).
Code: Alles auswählen
// .. klassendeklaration
Kalender *m_pZinsBeginnKalender;
Kalender *m_pZinsEndeKalender;
// Kalender initialisieren
m_pZinsBeginnKalender = new Kalender(this);
m_pZinsEndeKalender = new Kalender(this);
m_pZinsEndeKalender->SetLoeschbar(true);
m_pZinsEndeKalender->DeleteDatum();
m_pZinsBeginnKalender->ConnectToControl(ZinsBeginnControl,ZinsBeginnDatum);
m_pZinsEndeKalender->ConnectToControl(ZinsEndeControl,ZinsEndeDatum);
connect(m_pZinsBeginnKalender, SIGNAL( dateChanged(const QDate&) ), this, SLOT( DatumChanged() ) );
connect(m_pZinsEndeKalender, SIGNAL( dateChanged(const QDate&) ), this, SLOT( DatumChanged() ) );
QToolBar *ZinsBeginnControl, *ZinsEndeControl;
QLineEdit *ZinsBeginnDatum;*ZinsEndeDatum;
Man kann das Datum auch als QDate auslesen oder durch Übergabe von QDate Objekten manipulieren.
Allerdings ist die Klasse noch für Qt3.x geschrieben, es muss daher aus dem *.ui File mit dem ui-compiler die Basisklasse für KalenderWidget gebaut werden. Unter kann man sehen wie es aussieht
PPPS: das kleine Bildchen bringt die Klasse mit, die Toobluttons können also leer sein