fehlermeldung

Alles rund um die Programmierung mit Qt
Antworten
timbuktubob
Beiträge: 11
Registriert: 11. August 2004 07:44
Wohnort: Bergen/Rügen
Kontaktdaten:

fehlermeldung

Beitrag 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!
war Fehler findet darf Sie behalten!
miketech
Beiträge: 125
Registriert: 3. August 2004 11:19

Beitrag 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
timbuktubob
Beiträge: 11
Registriert: 11. August 2004 07:44
Wohnort: Bergen/Rügen
Kontaktdaten:

Beitrag 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?
war Fehler findet darf Sie behalten!
miketech
Beiträge: 125
Registriert: 3. August 2004 11:19

Beitrag 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
timbuktubob
Beiträge: 11
Registriert: 11. August 2004 07:44
Wohnort: Bergen/Rügen
Kontaktdaten:

dickes danke

Beitrag 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!
war Fehler findet darf Sie behalten!
miketech
Beiträge: 125
Registriert: 3. August 2004 11:19

Beitrag 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
Antworten