Hallo zusammen,
kann mir jemand bei meinem Programm weiterhelfen?
Ich muss ein Signal zeichnen und hatte die x,y -Punkte frei gewaehlt gehabt. Jetzt soll ich das aber nicht so machen, da das Signal nicht richtig rauskommt. Ich komm da aber nicht weiter. Hier ist der bisherige Code:
Code
void drawwidget::paintEvent(QPaintEvent * event){
QPainter painter(this);
QPainterPath painterpath_signal;
position_xRichtung = 10;
position_yRichtung = 300;
if(signalwerte.size() != 0){
painter.drawText(300,30,QString::number(segment) + ". Segment");
painter.setFont(QFont("Arial", 10, QFont::Bold));
painterpath_signal.moveTo(position_xRichtung, position_yRichtung); //keinen selber gesetzten punkt waehlen, sondern startpunkt ermitteln
for(int i = start; i < end; i++){
painterpath_signal.lineTo(position_xRichtung + 1,
signalwerte.at(i) * (ymax-ymin) + position_yRichtung);
position_xRichtung = position_xRichtung + 1;
}
drawCoordinates(painter);
painter.setPen(Qt::red);
}
painter.drawPath(painterpath_signal);
}
//hoechsten wert des signals ausrechnen. alle werte mit schleife //durchlaufen und den hoechsten ermitteln.
//koordinatentransformation muss rein.
void drawwidget::ymaxi() {
for(int i = start; i <= signalwerte.size(); i++) {
if (signalwerte.at(i) > signalwerte.at(i-1)) {
ymax = i;
}
}
}
//niedrigsten wert des signals ausrechnen. alle werte mit schleife //durchlaufen und den niedrigsten ermitteln.
//Koordinatentransformation muss rein.
void drawwidget::ymini() {
for(int j = start; j <= signalwerte.size(); j++) {
if (signalwerte.at(j) < signalwerte.at(j-1)) {
ymin = j;
}
}
}
void drawwidget::drawCoordinates(QPainter &painter) {
painter.setPen(Qt::black);
painter.drawLine(10, 300, signalwerte.size(), 300);
painter.drawText(670, 350, tr("x"));
painter.drawLine(10, 10, 10, 490);
painter.drawText(15, 20, tr("y"));
}
Alles anzeigen
Also ich muss jetzt statt position_xRichtung und position_yRichtung ermittelte Werte setzen. Und die 2 Methoden ymaxi() und ymini() richtig implementieren. Weiss auch nicht ob es bisher so stimmt und dann die Werte in die Methode paintEvent() einsetzen.
Komm wirklich nicht weiter. Wäre für jede Hilfe dankbar