Проблемы с QtreeWidget при частом добавлении Item'ов



  • Здрасти))

    Я новичок, так что сильно не пинайте)
    Задача: в виджет состоящий из нескольких колонок необходимо добавлять строчки из другого потока. При этом частота добавления строк может быть оч большой (в другом потоке перехватываются пакеты, а виджете отображается инфа о пакете).

    Проблема 1: при большой загруженности сетевой карты, т.е. при частом добавлении item'ом в QtreeWidget происходит зависание qtreeWidget намертво! (добавляю через addTopLevelItem).
    Проблема 2: при длительной работе приложения постоянно растет объем потребляемой памяти (это как я понял связанно с тем что каждый item должен создаваться через new).
    Посоветуйте как избавится от зависаний и растущего аппетита приложения???

    Погуглил, и понял что вариантов несколько: 1) создавать свою модель данных 2) В теории можно переопределить событие перерисовки виджета и каким-то образом прорисовывать его не чаще чем раз в полсекунды или прорисовывать только когда скопится N новых item'ов (но только как это реализовать???) 3) Может я изначально не туда смотрю? может использовать не qtreewidget как элемент отображения пакетов??

    P.s. в плане реализации потоков и их работы - там ошибок не может быть, т.к. все отлично работало C++Builder(Embrcadero)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.