Bin noch totaler Anfänger und suche seit Stunden nach einer Lösung für folgendes Problem:
Ich möchte aus einer Funktion heraus Werte an Objekte der QLCDNumber übertragen. Am besten ich poste den ganzen Code mal:
Code: Alles auswählen
class QLCDNumber;
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent=0,const char *name=0);
void ber();
private:
QLCDNumber *lcdday;
QLCDNumber *lcdmin;
QLCDNumber *lcdsec;
QLCDNumber *lcdstd;
};
MyWidget::MyWidget( QWidget *parent, const char *name)
:QWidget(parent,name)
{
setMinimumSize(220,120);
setMaximumSize(500,120);
QPushButton *quit =new QPushButton("Quit",this,"quit"); //quit Button
quit->setGeometry(140,90,75,30);
quit->setFont(QFont("Times",15));
connect(quit,SIGNAL(clicked()),qApp,SLOT(quit()));
QLCDNumber *lcdday =new QLCDNumber(3,this,"lcdday"); //lcd Tage
lcdday->setGeometry(10,20,50,30);
QLCDNumber *lcdstd =new QLCDNumber(3,this,"lcdstd"); //lcd Stunden
lcdstd->setGeometry(60,20,50,30);
QLCDNumber *lcdmin =new QLCDNumber(3,this,"lcdmin"); //lcd Minuten
lcdmin->setGeometry(110,20,50,30);
QLCDNumber *lcdsec =new QLCDNumber(3,this,"lcdsec"); //lcd Sekunden
lcdsec->setGeometry(160,20,50,30);
}
void MyWidget::ber()
{
QDateTime dt = QDateTime::currentDateTime();
QDateTime xmas( QDate(2004, 10, 01 ), QTime(21,00) );
QDate lala( 2004, 10, 01 );
int tage = (QDate::currentDate().daysTo(lala));
int sec= dt.secsTo(xmas);
int rstd=(sec-(tage*24*60*60))/60/60;
int rmin=((sec-(rstd*60*60))-(tage*24*60*60))/60;
int rsec=(sec-(tage*24*60*60)-(rstd*60*60)-(rmin*60));
lcdday->display(tage); // <---- Hier soll der Wert übergeben werden
lcdstd->display(rstd);
lcdmin->display(rmin);
lcdsec->display(rsec);
}
int main(int argc,char **argv)
{
QApplication a(argc,argv);
MyWidget w;
w.setGeometry(100,100,200,120);
a.setMainWidget(&w);
w.show();
return a.exec();
}
Ich bekomm zwar keine Fehlermeldung, aber ich weiß nicht, wo ich die Funktion ber() aufrufen soll, damit die Werte korrekt angeziegt werden. Wenn ich die Funktion direkt in das Objekt MyWidget setze, bekomme ich die Fehlermeldung: Segmentation fault
Kann auch sein, dass da sonst noch Fehler sind, weil ich wie gesagt noch Anfänger bin und versuche mir das ein wenig beizubringen, deswegen würde ich mich über Hilfe sehr freuen.
Danke schon mal im Vorraus
Robert