# [c++/Qt4]-Variablen ausgeben



## nahkillo94 (16. März 2010)

Hi, ihr kennt doch bestimmt das GUI-Toolkit Qt (gesprochen cute). Ich hab ein ziemlich großes Problem und finde keine Lösung. Kann auch sein dass ich unter dem falschen Begriff suche. 

Weiß jemand wie man eine Variable in Qt ausgibt. Also so dass man es sehen kann im Fenster.

Normaler Text geht ja so:

```
// helloworld/main.cpp

#include<QApplication>
#include<QLabel>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QLabel label("HelloWorld");
    label.show();

    return a.exec();
}
```

Jetzt will ich aber eine Variable x=1234 statt HelloWorld anzeigen. Dazu muss erstmal x definiert werden. 


```
int x=1234;
```

Kein Problem, doch die Ausgabe??

Hab übrigens schon versucht statt "HelloWorld" <<x<< oder x oder <<x einzusetzen, aber geht auch nicht.


----------



## bingo88 (17. März 2010)

Hat das Label nicht ne Methode setNum() oder so? Bin mir da atm net mehr 100% sicher... schau doch notfalls mal in den docs bei QLabel nach!


----------



## nahkillo94 (17. März 2010)

Danke für den Tipp. Ich guck mal nach!


----------



## Bauer87 (17. März 2010)

Aus der Doku:


> ```
> void QLabel::setNum ( int num )   [slot]
> ```
> Sets the label contents to plain text containing the textual representation of integer num. Any previous content is cleared. Does nothing if the integer's string representation is the same as the current contents of the label.



Per Constructor kannst du das nicht machen. Die einzigen beiden Construktoren sind:

```
QLabel ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
QLabel ( const QString & text, QWidget * parent = 0, Qt::WindowFlags f = 0 )
```

Hintergrundinfo: QLabel nutzt QString als Container für den Text. Es geht daher wohl nur in dieser Art:

```
QLabel label;
label.setNum(1234);
label.show();
```
(Es sei denn, du baust dir nen eigenen Converter von Int zu Char* oder du implementierst Ein Kind von QLabel, das nen entsprechenden Construktor besitzt, der Integer frisst.)


----------



## bingo88 (17. März 2010)

Jap, genau das meinte ich. War jetzt zu faul, mal nachzusehen


----------



## nahkillo94 (17. März 2010)

Ich weiß nicht!?!

Ich glaub ich bin grad echt zu blöd dazu!!



```
QLabel label;
label.setNum(1234);
label.show();
```

Damit gebe ich doch aber keine Variable aus! Oder? Ich will das der Benutzer eine Eingabe macht in eine QTextBox. Dieses Wort/Zahl was auch immer in eine Variable. Und diese Variable dann einfach wieder im Fenster anzeigen oder ein neues Fenster öffnen.

z.b.

QT fragt: "Wie heißt du?"

Ich tippe: "nahkillo94"

QT öffnet ein Dialogfenster:" Du heißt nahkillo94!!"


Sorry dass ich so nerve!  Aber bin grad echt am verzweifeln!!


----------



## nahkillo94 (17. März 2010)

Im normalem c++ wäre das:

int name;

cout<<"Wie heißt du?";
cin>>name;
cout<<"Du heißt "<<name;<<"!!";


----------



## bingo88 (17. März 2010)

Ich hab grade leider keinen Zugriff auf nen PC mit Qt aber eigentlich müsste das ja so gehn:

```
int variable = 1234;
label.setNum(variable);
```
Mal ne dumme Frage: Hast du vorher schonmal mit C/C++ gearbeitet?


----------



## nahkillo94 (17. März 2010)

echt? So einfach?

Um deine Frage zu beantworten: Ja aber bisher nur in der Konsole und kein bischen GUI.


----------



## nahkillo94 (17. März 2010)

Toll, geht ja sogar, aber eigentlich hatte ich das doch so probiert.

Da zeigt sich wie schnell man raus kommt wenn man 4-5 Monate nix mehr gemacht hat.


----------



## bingo88 (17. März 2010)

Ich kam da jetzt drauf, weil du nur vom Shift-Operator gesprochen hast, bei dem Qlabel aber die Funktion setNum mit nem int als Parameter aufgerufen wird 
Macht ja nix, dafür sind wir ja hier in nem Forum


----------



## nahkillo94 (17. März 2010)

Stimmt^^

Das is jetzt echt peinlich!! Ich lass mich nie wieder blicken!!


----------



## bingo88 (17. März 2010)

Learning by doing 

Btw. ich hab noch iwo nen gutes Ebook zu Qt4 das es mal bei der ct auf der HP zum dl gab. Mal gucken, ob ich's noch finde... müsste ich eigentlich irgendwo auf meinem Server liegen haben  Wenn Interesse besteht, kannst du mir Bescheid geben!


----------



## nahkillo94 (17. März 2010)

Auf jeden Fall!! Das wär echt cool. 

Der Satz is auch cool:



bingo88 schrieb:


> ...der ct auf der HP zum dl gab...


----------



## bingo88 (17. März 2010)

Ich hab sogar die offizielle Seite gefunden Qtrac Ltd. - Mark Summerfield's Writing & Software und dann bei First Edition gucken. Nutzt allerdings noch net den QtCreator, aber ich kam damit soweit ganz gut klar.


----------



## nahkillo94 (17. März 2010)

Wow, vielen Dank!!


----------



## bingo88 (17. März 2010)

Kein Ding. Ich war jetzt nur froh, dass ich den Link noch gefunden habe. Das Verbreiten von urheberrechtl. geshütztem Material ist ziemlich uncool - besonders wenn man erwichst wird


----------



## nahkillo94 (17. März 2010)

jop^^ vor allem "erwichst"^^


----------



## bingo88 (17. März 2010)

Upps... da waren die Finger mal wieder schneller als der Kopp


----------

