Seite 1 von 1
fehlermeldung
Verfasst: 11. August 2004 10:00
von timbuktubob
error invalid conversion from `int' to `QTab*'
das ist die Fehler meldung die ich habe!kann mir einer Sagen wie ich den Fehler beheben kann?
was will ich machen? will in einen Tab die Caption ändern und dann kam diese Fehlermeldung. Das ganze soll in einer Schleife gezählt werden und zwar von 0 - 12 und dann halt in der Caption ausgegeben werden! jedoch nimmt er nur einen wert von int an! kann ich das ganze vielleicht auch in einem string machen? wenn ja wie!
hoffe auf baldige antwort!
Verfasst: 11. August 2004 14:52
von miketech
Hi,
verstehe ich das richtig: Du möchtest in einem Tab der Reihe nach die Caption von 0 bis 12 ändern?
Oder hast Du 13 (0 bis 12) Tabs, in denen Du die Caption ändern möchtest?
Kannst Du den Quellcode dieses Programmabschnittes posten?
Gruß
Mike
Verfasst: 11. August 2004 15:12
von timbuktubob
jo mein text sieht so aus! nein habe nur 12 durchläufe!
Code: Alles auswählen
int i;
int jahr=2000;
//------------------------------------------------------------------------------------------------------------
ITabs::ITabs(){
// nTabCount=0;
setGeometry (100, 100, 490, 405);
for (i=0;i<12;i++)
{
QVBox* myBox = new QVBox(this);
addTab( myBox, jahr+1);
}
}
und dann kommt diese komische Fehlermeldung!
wird man daraus schlau?
Verfasst: 11. August 2004 15:55
von miketech
Hi,
das Problem ist:
Die Funktion, die Du aufrufen möchtest ist offensichtlich:
void QTabDialog::addTab ( QWidget * child, const QString & label )
Der Compiler hat nun erstmal gedacht, Du meinst:
void QTabDialog::addTab ( QWidget * child, QTab * tab )
Beide Funktionen erwarten 2 Parameter. Du versucht jedoch als zweiten Parameter einen Integer zu übergeben, deswegen der Fehler.
addTab( tab1, "General" );
Das hier wäre z.B. ein korrekter Aufruf (entnommen aus
http://doc.trolltech.com/3.3/tabdialog-example.html) da hier der zweite Parameter ein QString ist.
Versuch mal den Aufruf:
addTab(myBox, QString::number(jahr + 1) );
Das sollte den Integer in einen String umwandeln.
Gruß
Mike
dickes danke
Verfasst: 12. August 2004 07:19
von timbuktubob
statt dem +1 reicht ein ++!!!
aber danke für die schnelle hilfe!!!
bin gerade im Anfangsstadium, und kenne mich deswegen noch nicht so richtig aus!
Verfasst: 12. August 2004 07:39
von miketech
Hi,
kommt drauf an, was Du machen willst. In Deinem Beispiel würde in jedem Tab "2001" stehen. Wenn Du natürlich jedes mal inkrementieren willst, müsstest Du sowas schreiben:
Code: Alles auswählen
for (i=0;i<12;i++) {
QVBox* myBox = new QVBox(this);
addTab( myBox, QString::number(jahr) );
jahr = jahr + 1;
}
Oder alternativ:
Code: Alles auswählen
for (i=0;i<12;i++) {
QVBox* myBox = new QVBox(this);
addTab( myBox, QString::number(jahr + i) );
}
Oder eben, wie Du schon geschrieben hast:
Code: Alles auswählen
for (i=0;i<12;i++) {
QVBox* myBox = new QVBox(this);
addTab( myBox, QString::number(jahr++) );
}
Gruß
Mike