Название: [Решено?] Помогите настроить реакцию кнопок в столбце. Отправлено: neosapient от Август 25, 2009, 13:32 Здравствуйте.
Сделал таблицу QTableWidget, со столбцами: стандартный, QLineEdit, QComboBox, QPushButton. (http://pic.ipicture.ru/uploads/090825/73PGSJZ9N3.jpg) (http://ipicture.ru/) Первые три столбца реагируют на редактирование в соответствии с ожиданиями. Проблема с столбцом кнопок, при кликах не вызывается QItemDelegate::setModelData() Я хочу сделать так, чтобы при нажатии на кнопку было два состояния: кнопка отжата и надпись Lock, кнопка зажата (залипла) и надпись Work. Исходник в приложении Название: Re: Помогите настроить реакцию кнопок в столбце. Отправлено: neosapient от Август 28, 2009, 00:28 Есть у кого-нибудь идеи, как настроить обработчики кнопки в таблице/модели ?
Название: Re: Помогите настроить реакцию кнопок в столбце. Отправлено: neosapient от Декабрь 15, 2009, 17:15 Вернулся к этой задаче. Очень хочу услышать вашу конструктивную критику по выбраному мной способу.
Решением стала разработка наследника QPushButton. Чтобы кнопка залипала в конструкторе наследника устанавливаю флаг setCheckable(true). Так же поставил перехват сигнала toggled(bool) от кнопки, при изменении которого пишу текст "Work/Lock". В методе делегата QItemDelegate::setModelData() Насколько я понял, Делегат переходит в режим редактирования когда содержащая его ячейка получает фокус и клик мышкой/<Enter>. Точно также делегат выходит из режима редактирования, когда фокус с ячейки убирается. Сейчас кнопка доступна для кликов, но как в случае обычного комбобокса, выбранное значение возвращается в QItemDelegate::setModelData() только при смене фокуса. Как программно из делегата сменять фокус внутри QTableView ? Название: Re: [Решено?] Помогите настроить реакцию кнопок в столбце. Отправлено: Marat(Qt) от Декабрь 26, 2009, 18:40 отошлите из делегата сигнал, например:
Код: emit needChangeFocus(); Код: MyDelegateClass *deleg = new MyDekegateCkass(ui->tableView); |