LINUX.ORG.RU

QCheckListItem check/unchek trouble


0

0

state у QCheckListItem'-а можно изменить двумя способами - либо мышкой, поставив галочку, либо вызвав в программе setState(..); как определить, что state был изменен ИМЕННО МЫШКОЙ?

Ответ на: комментарий от Shmuma

>Поясни, зачем это тебе понадобилось.

В общем, почитал я форумов и документации; кто-то советовал переопределить stateChange(bool), кто-то говорил - обрабатывай слот clicked() и т.д., и я пытался сделать и то и другое, но когда clicked обрабатываешь, то непонятно, поставлена ли галка или нет, а когда переопределяешь stateChange, то возникает масса побочных эффектов, если действуют какие-нибудь алгоритмы, автоматически меняющие state у item-ов.

Например (см. скриншот (http://foto.radikal.ru/f.aspx?i=d98cd41f95aa4d5981ca383047df869a) ), представим себе такую ситуацию, есть иерархический to-do-лист, родительская таска и много дочерних. И вот кто-то ставит галку на родительской. Начинает работать алгоритм, который, во-первых идет вверх по иерархии и вычисляет проценты завершения у родительских тасков, а во-вторых, идет вниз по иерархии и ставит галки, где только не находит. В итоге вызываются многочисленные stateChange, и начинается такая лапша, в которой уже довольно трудно разобраться. При том, что я еще не знаю, понадобится мне что-нибудь другое от этого события, или нет.

А извраты, если не секрет, не слишком извратные? :))

И почему это правильно?

Я пишу yet another todo-list (назвал символично - KaKaDoo), для себя в первую очередь, т.к. другие кажутся мне в чем-то убогими. А тут - столько идей и довольно (казалось бы!) простая реализация.

jet_bird
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.