Название: Удаление QChekBox из QMap Отправлено: Trademaster от Октябрь 27, 2013, 23:55 Всем привет :)
Есть QMap<int,QCheckBox *> cb Это сборник чекбоксов ,они размещеные в QTableWidget. В проге есть возможность выделить все чекбоксы и снять выделение со всех чекбоксов (реализовано простыми циклами, кол-во чекбоксов хранится в перменной id ,она прибавляется на 1 с созданием каждой новой строки). Так вот ,если я удалю строку с чекбоксом ,который находится в середине cb (предположим id = 10 , а я удалю строку с 5м чекбоксом) ,то при попытки выделить \ снять выделение со всех чекбоксов ,прога крашится (ясно почему ,т.к она пытается что то сделать с несуществующем чекбоксом). Так вот ,нужно каким то образом это исправить,есть какие то идеи??? Название: Re: Удаление QChekBox из QMap Отправлено: carrygun от Октябрь 28, 2013, 05:21 Не очень понятно как у тебя связано ключ-значение. Но в чем сложность удалить из мапа? Сделай remove по ключу.
Название: Re: Удаление QChekBox из QMap Отправлено: Fregloin от Октябрь 28, 2013, 10:55 Зачем такие трудности? Создайте свою модель. Раньше тоже так делал, но данный подход неверен и громоздок, чреват как раз такими ошибками.
Название: Re: Удаление QChekBox из QMap Отправлено: Trademaster от Октябрь 29, 2013, 09:39 Не очень понятно как у тебя связано ключ-значение. Но в чем сложность удалить из мапа? Сделай remove по ключу. Сделаю remove по ключу и когда к этому же ключу прога обратиться ,она закрашится ,в этом и проблема... А если юзать try ... catch ??? Название: Re: Удаление QChekBox из QMap Отправлено: kambala от Октябрь 29, 2013, 11:14 при обращении по ключу проверяй чтобы результат != 0
а как ты пробегаешься по всем чекбоксам — крутишь в форе числа от 0 до n что ли? может проще пробегаться прямо по QMap? Название: Re: Удаление QChekBox из QMap Отправлено: Maestro от Октябрь 30, 2013, 02:24 Пользуйтесь моделями - они позволяют хранить внутри таблицы все необходимое.
Код: #define MY_SUPER_ROLE Qt::UserRole+1 |