Label per Click durch ein Formular wandern lassen



  • Hallo zusammen,

    ich habe ein Problem mit QT Designer:

    Es soll ein Label mit Text per klick auf einen Button von oben nach unten durch das Formular wandern, pro Klick soll das Label um einen Schritt nach unten wandern.

    Ich habe gerade einige Seiten zu QT gelesen, und auch im Internet gegoogelt, aber keine Lösung gefunden.
    Ich denke hier an eine Schleife, um den Slot zu schreiben.

    Gruß



  • ich denke mal, es wäre einfacher, das Label mehrmals hinzuzufügen und die nicht benötigten entsprechend auszublenden

    Alternativ kannst du das Widget aus dem Layout entfernen und an der neuen Stelle wieder einfügen. Kann aber zu unschönen Effekten führen, wenn sich das Layout jedesmal neu anpassen muss



  • du kanst ddoch ganz einfach so etwas machen :

    {
        Label1->Top = Label1->Top + A;
    }
    

    um wiefiel Pisel sich Label1 nach
    nach oben verschieben soll.

    oder :

    {
        Label1->Top = Labe1->Top - B; // Umgekehrt (unten nach oben)
    }
    

    oder du meinst das man im Deisinger Programiren kann (was mann, von mir aus gesehen, nicht kann ).

    .



  • Vielen Dank erstmal für eure Hilfe, letzterer Tip Funktioniert leider nicht, es wäre so schön gewesen...

    folgenden Quellcode habe ich übernommen:

    {
    textLabel1->Top = textLabel1->Top - 6;
    }
    

    und erhalte folgende Fehlermeldung nach ausführen von make:

    ...error: assignment of read-only location
    ...invalid conversion from 'int' to 'Qt::Dock'
    

    vieleicht habe ich etwas vergessen ?





  • kannst du vieleicht näher auf QWidget::pos eingehen, in meinem Buch C++ GUI-Programmierung mit Qt3 von Addison-Wesley ist leider nichts über QWidget::pos zu finden. Auch beim Googlen finde ich leider nur Brocken dazu, Danke im vorraus



  • Qt Software hat eine erstklassige Doku (doc.trolltech.com) und außerdem wäre es vll mal an der Zeit, eine aktuelle qt-Version zu verwenden



  • Jedes Widget hat eine (relative) Position innerhalb seines Parent-Widgets.
    Diese kannst Du (auch mit Qt3) mit der Funktion pos ermitteln.
    Um ein Widget zu verschieben benutzt Du die Funktion move.



  • Hallo, könnte man nicht auch eine Slot Funktion schreiben in der mit der Anweisung setGeometry() beim klick auf den Button das Label neu gezeichnet wird, eben auf einer anderen Position ?

    Gruß


Anmelden zum Antworten