crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Элементы не добавляются в вектор
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Obey-Kun Дата 25.2.2011, 18:15
  Кстати да. А operator<< aka append() для vector<T> в качестве аргумента есть.
kwisp Дата 25.2.2011, 10:33
 
Цитата(Obey-Kun @ 25.2.2011, 4:15) *
Используй сигналы и слоты, работающие с const QVector&. Указатели тут ни к чему.

да. и у вектора есть способы скопировать его по приличнее чем рукописный цикл!
Obey-Kun Дата 25.2.2011, 4:15
  Используй сигналы и слоты, работающие с const QVector&. Указатели тут ни к чему.
QMainWindow Дата 13.2.2011, 20:06
  Спасибо, получилось.
Dovgon Дата 13.2.2011, 19:38
  Ты используешь указатель на вектор, но не где не показал как его создаешь.
Kagami Дата 13.2.2011, 16:12
  А где у тебя векторы создаются?
QMainWindow Дата 13.2.2011, 13:09
  Не получается добавить double число в QVector. В заголовочном файле записал данный вектор, в конструкторе этого класса пишу: MyVector->append(MyValue); Вместо продолжения работы пишет ошибку -1073741819. Объект класса - виджет, которые создается в конструкторе ГО:
MainWindow::MainWindow()
{
    ...
    paintWidget = new PaintWidget(this);
    paintWidget->setGeometry(0, 15, width(), height()-30);
    paintWidget->setVisible(true);
    ...
    connect(this, SIGNAL(Data(QVector<double>*,QVector<double>*)), paintWidget, SLOT(PaintData(QVector<double>*,QVector<double>*)));
    ...
}

Вообще в него передаю, как видно выше, в слот PaintData два вектора. Затем хочу переписать их в два других вектора, принадлежащих этому виджету, но он выдает ошибку (т.е. элементы не добавляются не в конструкторе, не в слоте). Ощущение, будто он не хочет работать в принципе с QVector. Как лечить?)

Собственно конструктор моего виджета:
PaintWidget::PaintWidget(QWidget *parent):QWidget(parent)
{
    timer = new QTimer(this);
    j=0;
    X->append(0); //Тут пытаюсь добавить,а не получается...
    Y->append(0);
    connect(timer, SIGNAL(timeout()), this, SLOT(NewFrame()));
}

и на всякий случай сам слот:
void PaintWidget::PaintData(QVector<double> *CoordX, QVector<double> *CoordY)
{
    X->clear(); Y->clear();
    for(i=0; i<CoordX->size(); i++)
    {
        X->append(CoordX->value(i));
        Y->append(CoordY->value(i));
    }
    qDebug()<<CoordX->size()<<CoordY->size();
    timer->start(42);
}
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:31