void DataPlot::insertCurve(Qt::Orientation o, const QColor &c, double base){ QwtPlotCurve *curve = new QwtPlotCurve(); curve->setPen(QPen(Qt::blue,3)); double i ; double x[10]; double y[sizeof(x) / sizeof(x[0])]; for ( uint k = 0; k < sizeof(x) / sizeof(x[0]); k++ ) { double v = i+k * 1.5; if ( o == Qt::Horizontal ) { x[k] = v; y[k] = base; } else { x[k] = base; y[k] = v; } } curve->setData(x, y, sizeof(x) / sizeof(x[0])); curve->attach(this);}
signals: void signalNewI(double);
private slots: void slotUpdateSpinBox(double value);
void DataPlot::slotUpdateSpinBox(double value){ this->yourSpinBox->setValue(value);}
connect(this, SIGNAL(signalNewI(double)), this, SLOT(slotUpdateSpinBox(double)));
void DataPlot::insertCurve(Qt::Orientation o, const QColor &c, double base){ QwtPlotCurve *curve = new QwtPlotCurve(); curve->setPen(QPen(Qt::blue,3)); double i ; double x[10]; double y[sizeof(x) / sizeof(x[0])]; for ( uint k = 0; k < sizeof(x) / sizeof(x[0]); k++ ) { double v = i+k * 1.5; if ( o == Qt::Horizontal ) { x[k] = v; y[k] = base; } else { x[k] = base; y[k] = v; } } curve->setData(x, y, sizeof(x) / sizeof(x[0])); curve->attach(this); emit signalNewI(i); /// вот это добавили!!!}
void DataPlot::slotProcChangeValueFromDoubleSpinBox(double i){ Qt::Orientation orientation = XXX; //тут нужно присвоить нужное вам значение ориентации.. Как это сделать - вам виднее. QColor color = YYY; //тут нужно присвоить нужное вам значение цвета.. Как это сделать - вам виднее. double base = ZZZ; //тут нужно присвоить нужное вам значение .. Как это сделать - вам виднее. this->insertCurve(orientation , color , base, i); //это немного переделанный ваш метод в котором переменная i //подается на вход а не создается внутри метода (как у вас)!}
connect(yuorDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(slotProcChangeValueFromDoubleSpinBox(double)));
void DataPlot::strob(Qt::Orientation o, const QColor &c, double base){ QSpinBox*spinBox2 = new QSpinBox; spinBox2->setRange(0,699); spinBox2->setValue(43); spinBox2->show(); QwtPlotCurve *curve = new QwtPlotCurve(); curve->setPen(QPen(Qt::blue,3)); double x[10]; double y[sizeof(x) / sizeof(x[0])]; for ( uint k = 0; k < sizeof(x) / sizeof(x[0]); k++ ) { double i = spinBox2->value(); double v = i+k * 1.5; if ( o == Qt::Horizontal ) { x[k] = v; y[k] = base; } else { x[k] = base; y[k] = v; } } curve->setData(x, y, sizeof(x) / sizeof(x[0])); curve->attach(this);}
QPalette pal = ui->doubleSpinBox->palette(); //создание палитры копированием со спин бокса QPixmap pix(":/image/pix.png"); //открытие изображения, в данном случае из файла ресурсов, но можешь с диска pal.setBrush(QPalette::Base,QBrush(pix)); //установка роли в качестве роли Base изображения (роль Background почему-то не работает) ui->doubleSpinBox->setPalette(pal);//установка спин боксу измененной палитры