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

Code: Alles auswählen

addTab(myBox, QString::number(jahr + 1) ); 
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