Seite 1 von 1

QPushButton vs. QLineEdit

Verfasst: 14. Dezember 2005 10:49
von ogre
Hallo,
ich möchte eine QPushButton mit einem QLineLineEdit verbinden, die Eingabe soll dann in einen drawText ausgegeben werden. Die Lösung mit dem QInputDialog::getInteger finde ich für meine Zwecke etwas ungeeignet.

Mein Programm sieht wie folgt aus:

MyWidget::MyWidget( QWidget *parent ):QWidget(parent)
{
QPushButton *button = new QPushButton("zeichne");

QLabel *label = new QLabel;
label->setText(" Zeichen ");


QLabel *_x1besch = new QLabel;
_x1besch->setText("Wert für x 1:");
QLineEdit *_x1 = new QLineEdit;


drawfield *drawField = new drawfield;

connect(button, SIGNAL( clicked() ), drawField, SLOT( setAngle(int) ) );
}



In der Klasse drawField ist die Methode setAngle():

void drawfield::setAngle(int angle)
{
currentAngle = angle;
update();
emit angleChanged(currentAngle);

}


und hier soll das ganze dann erscheinen:

void drawfield::paintEvent(QPaintEvent *event )
{

painter.drawText(200, 200, "Angle = " + QString::number(currentAngle));
}


tut es aber leider nicht.
Hat jemand eine Idee woran es liegen könnte.
Ich Glaube es wird kein Update Durchgeführt oder??

p.s. in drawfield.h ist Q_OBJECT vorhanden

Re: QPushButton vs. QLineEdit

Verfasst: 14. Dezember 2005 11:21
von macman
Dein connect kann nicht funktionieren, da unterscheidliche Parameter zwischen Signal und Slot.

Verfasst: 14. Dezember 2005 11:35
von ogre
Aber wie sage ich dem signal, das es bei button click den wert von *_x1 an setAngele senden soll?

Verfasst: 14. Dezember 2005 11:52
von macman
Kommt drauf an worauf Du hinaus willst, die Möglichkeiten sind vielfältig. Du könntest z.B. eine eigene QButtonLineEdit-Klasse erstellen, die dann ein passendes Signal versendet. Oder Du verzichtest im Slot auf den Parameter und holst Dir erst den Wert aus dem LineEdit, wenn der Button geklickt wurde.