Просмотр сообщений
|
Страниц: 1 2 [3] 4 5 ... 7
|
32
|
Qt / Вопросы новичков / Re: QChart
|
: Март 17, 2017, 16:18
|
Да че тут говорить, посмотрите пример dinamicspline, память жрет после 400 сек у меня тормоза начинаются
|
|
|
34
|
Qt / Вопросы новичков / Re: QChart
|
: Март 17, 2017, 13:49
|
maxPoint =50 точек. Я даже сделал так, чтобы после 50 точек программа перезаписывала точки. int QXYSeries::count() const показывает 50 но память все жрет и через 5 мин программу жутко тормозит. bool ChartMonitoring::setData(QString name, float data) { QDateTime minX = axisXX->min(); QDateTime maxX = axisXX->max();
qreal minY = axisYY.value(name)->min(); qreal maxY = axisYY.value(name)->max();
QDateTime x = QDateTime::currentDateTime(); qreal y = data; QPointF pointer;
if(point.value(name)==maxPoint) { reng = maxX.toMSecsSinceEpoch()-minX.toMSecsSinceEpoch(); //qDebug() <<reng; }
if(point.value(name)>=maxPoint) { timeRenge.setMSecsSinceEpoch(x.toMSecsSinceEpoch()-reng);
axisXX->setRange(timeRenge, x>maxX ? x : maxX); for(int i=0; i<maxPoint-1; i++){ pointer = serias.value(name)->at(i+1); serias.value(name)->replace(i, pointer); } pointer.setX(x.toMSecsSinceEpoch()); pointer.setY(y); serias.value(name)->replace(maxPoint-1, pointer); } else { axisXX->setRange(minX, x>maxX ? x : maxX); serias.value(name)->append(x.toMSecsSinceEpoch(), y); point[name]++;
}
qDebug() << serias.value(name)->count(); }
|
|
|
36
|
Qt / Вопросы новичков / Re: QChart
|
: Март 16, 2017, 21:51
|
Вы при этом удаляете точки, которые не отображаются на графике из QLineSeries? нет не удаляю. Про скройлинге они не удаляются ?
|
|
|
37
|
Qt / Вопросы новичков / Re: QChart
|
: Март 16, 2017, 21:32
|
я собираю 100 точек на графике с интервалом 5 сек. После того как добавятся все 100 точек на график я начинаю сдвигать график, то есть всегда на графике последнее 100 точек. Так вот, я в диспетчере задач смотрю память она растет и растет не знаю что делать .
|
|
|
38
|
Qt / Вопросы новичков / Re: QChart
|
: Март 16, 2017, 17:18
|
Ты не решил проблему с утечкой памяти? Наверное оно возникает при добавление в QLineSerias записей. МОжет попробовать replace Qpoint делать ?
|
|
|
39
|
Qt / Вопросы новичков / Re: QChart
|
: Март 16, 2017, 13:42
|
Движение как показано в примере нужно осуществлять функцией scroll (QChart ) как я понял.
|
|
|
40
|
Qt / Вопросы новичков / Re: QChart
|
: Март 15, 2017, 16:49
|
спасибо получилось без сигналов. Я думал он автоматом масштабирует. Дрогой вопрос допустим я хочу только 10 точек отобразить на графике, то есть при добавлении 11 первая удаляется и все сдвигаются тем самым на графике только 10 последних значений. Чтобы это реализовать нужно все вручную делать? перезаписывать QPoin или же можно функцией scroll воспользоваться. Будет ли утечка памяти ?
|
|
|
41
|
Qt / Вопросы новичков / Re: QChart
|
: Март 15, 2017, 07:46
|
Конечно спросить мой код не работает. Как это реализовать ? Если я использую не врямя по оси X а точки то все получается с времененм ничего не получается
|
|
|
42
|
Qt / Вопросы новичков / QChart
|
: Март 14, 2017, 17:13
|
Хочу реализовать простую программу (график ось х время, ось У числа). Есть виджет с кнопкой и ввод числа. Хочу при нажатии на кнопку, чтобы число в dublespinbox добавилась на ось У а на ось Ч время. #include "chart.h" #include "ui_chart.h"
chart::chart(QWidget *parent) : QMainWindow(parent), ui(new Ui::chart) { ui->setupUi(this);
//qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
series = new QLineSeries(); series->append(momentInTime.toMSecsSinceEpoch(),0); m_chart = new QChart(); m_chart->addSeries(series); m_chart->legend()->hide(); m_chart->setTitle("Sunspots count (by Space Weather Prediction Center)"); //![3]
//![4] axisX = new QDateTimeAxis; axisX->setTickCount(10); //axisX->setFormat("MMM yyyy"); axisX->setTitleText("Date"); m_chart->addAxis(axisX, Qt::AlignBottom); series->attachAxis(axisX);
axisY = new QValueAxis; axisY->setLabelFormat("%i"); axisY->setTitleText("Sunspots count"); m_chart->addAxis(axisY, Qt::AlignLeft); series->attachAxis(axisY); //![4]
//![5] chartView = new QChartView(m_chart); chartView->setRenderHint(QPainter::Antialiasing); ui->gridLayout->addWidget(chartView);
}
chart::~chart() { delete ui; }
void chart::on_pushButton_clicked() { m_chart->removeSeries(series); series->append(momentInTime.toMSecsSinceEpoch(), ui->doubleSpinBox->value()); m_chart->addSeries(series); }
|
|
|
43
|
Qt / Вопросы новичков / Правописание в Qt
|
: Март 05, 2017, 20:52
|
Как реализовать правописание для QTextBrauser ? Приложение будет кроссплатформенное (Windows and Linux). Если есть примеры дайте ссылки пожалуйста.
|
|
|
45
|
Qt / Вопросы новичков / EventFiltr
|
: Февраль 25, 2017, 23:30
|
Создал wizard, на которой находится label. Его использую для отображения изображения. Задача - при изменения размеров окна изменялся и изображение не сохраня пропорции сторон. Для этого я использую EventFiltr. Но программа завершается крахом (( #include "wizardremont.h" #include "ui_wizardremont.h" #include <QDebug>
WizardRemont::WizardRemont(QWidget *parent) : QWizard(parent), ui(new Ui::WizardRemont) { ui->setupUi(this);
ui->label->installEventFilter(this); }
WizardRemont::~WizardRemont() { delete ui; }
bool WizardRemont::eventFilter(QObject *obj, QEvent *evt) { if( evt->type() == QEvent::Resize) { QImage image(":/imeg/remont_4.png"); ui->label->setPixmap(QPixmap::fromImage(image).scaled(width()/4,height())); } return WizardRemont::eventFilter(obj, evt); }
|
|
|
Страниц: 1 2 [3] 4 5 ... 7
|
|
|