QList: недостаточно памяти
У меня есть графическое приложение, написанное на Qt для встроенного Linux. Частью этого приложения является обновление экрана каждые 250 мс. Однако примерно через 8-10 часов приложение вылетает с ошибкой «QList: Out of memory». Я выделил функцию и строки (в некотором смысле), где это происходит, но я понятия не имею, почему это происходит, поскольку я не использую QList. Единственные активные строки кода в этой функции находятся в конце этого вопроса.
Я понимаю, что QList никогда не «сжимает» память, которую он использует для хранения элементов, но я нигде не использую QList в своем коде. Я только вызываю 'setStyleSheet', чтобы установить различные шрифты и свойства для виджетов пользовательского интерфейса (метки, текстовые поля и т. Д.). Есть еще код, но он закомментирован, поэтому я предполагаю, что он как-то связан с setStyleSheet. Кто-нибудь знает, почему это происходит? Если так, знаете ли вы, как обойти это? Я использую Q.t. 4.3 кстати (из-за того, что он специально загружен во встроенную систему, которую я использую).
Большое спасибо за ваше время.
if(twc_rx){
ui->label_Rx->setStyleSheet("QLabel { background-color: lime; font: bold 16px 'Arial' }");
}else if(!twc_rx){
ui->label_Rx->setStyleSheet("QLabel { background-color: grey; font: bold 16px 'Arial' }");
}//line 561 to 684
if(twc_tx){
ui->label_Tx->setStyleSheet("QLabel { background-color: lime; font: bold 16px 'Arial' }");
}else{
ui->label_Tx->setStyleSheet("QLabel { background-color: grey; font: bold 16px 'Arial' }");
}if(ats_stat){
ui->label_ATS->setStyleSheet("QLabel { background-color: lime; border-radius: 10; font: bold 16px 'Arial'}");
}else{
ui->label_ATS->setStyleSheet("QLabel { background-color: red; border-radius: 10; font: bold 16px 'Arial'}");
}
if(atp_stat){
ui->label_atp2->setStyleSheet("QLabel { background-color: lime; border-radius: 10; font: bold 16px 'Arial'}");
}else{
ui->label_atp2->setStyleSheet("QLabel { background-color: red; border-radius: 10; font: bold 16px 'Arial'}");
}
if(ato_stat){
ui->label_ATO->setStyleSheet("QLabel { background-color: lime; border-radius: 10; font: bold 16px 'Arial'}");
}else{
ui->label_ATO->setStyleSheet("QLabel { background-color: red; border-radius: 10; font: bold 16px 'Arial'}");
}
РЕДАКТИРОВАТЬ:
Я должен отметить, что эти строки выполняются каждые 250 мс на основе входного сообщения из другой подсистемы. Я уже пошел по этой дороге, и это тупик. Это код ошибки.