Ошибка сегментации в каркасе приложения Qt - PullRequest
0 голосов
/ 29 мая 2010

это генерирует ошибку сегментации из-за "QColor colorMap [9]" ;. Если я удалю colorMap, ошибка сегментации исчезнет. Если я положу его обратно. Возвращается Если я сделаю чистое все, то соберу все, оно уйдет. Если я увеличу его массив, он вернется. С другой стороны, если я уменьшу его, он не вернется. Я устал добавлять этот массив в другой проект и

Что может случиться. Мне действительно интересно узнать. Я удалил все остальное в этом классе. Этот подкласс виджета используется для продвижения виджета в QMainWindow.

class LevelIndicator : public QWidget  
{  
public:  
    LevelIndicator(QWidget * parent);  
    void paintEvent(QPaintEvent * event );  
    float percent;  
    QColor colorMap[9];  
    int NUM_GRADS;  
};  

ошибка происходит внутри ui_mainwindow.h в одной из следующих строк:

    hpaFwdPwrLvl->setObjectName(QString::fromUtf8("hpaFwdPwrLvl"));

    verticalLayout->addWidget(hpaFwdPwrLvl);

Я знаю, что я не предоставляю много, но я дам ссылку на приложение. Я пытаюсь выяснить, есть ли у кого-нибудь быстрый ответ на этот вопрос.

Ответы [ 2 ]

3 голосов
/ 29 мая 2010

Если я сделаю чистое все, затем соберу все, оно уйдет.

Это звучит так, как будто ваша система сборки не распознает зависимость, и что изменение в определении этого класса не вызывает перестроение чего-то, что должно быть перекомпилировано при изменении определения.

Убедитесь, что class LevelIndicator определено только в одном месте (как правило, это будет заголовочный файл, который включается всеми модулями, которые нуждаются в использовании объекта LevelIndicator). Также убедитесь, что все глобальные / статические экземпляры объектов LevelIndicator соответствуют одному правилу определения.

2 голосов
/ 29 мая 2010

Во-первых, это может быть не QColor, который может просто изменять структуру памяти настолько, что переполнение буфера где-то еще вызывает ошибку segfault - попробуйте другой размер QColor .. [1] например.

Можно ли использовать QColor в качестве такого массива, имеет ли он правильный ctor по умолчанию?

...