Название: вопрос по делегатам Отправлено: Karl-Philipp от Мая 05, 2008, 11:05 Здравствуйте,
у меня задача сделать таблицу QTableView, к которой можно было бы добавлять строку. В каждой ячейке добавленной строки должен находиться определенный делегат (формат числа №n). Структура строки следующая. ---------------------------------+----------+---------+ | любые символы | Спец | Cпец | +--------------+---------------+ формат | формат | |Спец формат|Спец формат| числа | числа | |числа (№1) |числа (№2) | (№3) | (№5) | +--------------+---------------+-----------+----------+ фактически я добавляю две строки, в которых объединяю ячейки. Допустим, что делегаты для каждого формата числа в таблице смогут устанавливаться с помощью Цитировать void QAbstractItemView::setItemDelegateForColumn ( int column, QAbstractItemDelegate * delegate ) Однако в этом случае я не смогу вводить любые символы в левой верхней ячейке. Подскажите, пожалуйста, какое решение может быть? Название: Re: вопрос по делегатам Отправлено: ритт от Мая 05, 2008, 11:27 если не ошибаюсь, индекс ячейки в делегат передаётся - можно в делегатах закодить поведение до определённой строки и после
возможно, есть решение проще - надо искать/читать Название: Re: вопрос по делегатам Отправлено: Karl-Philipp от Мая 05, 2008, 11:33 точно, спасибо.
Помню, было уже про это не так давно. Но не смог найти. Название: Re: вопрос по делегатам Отправлено: Karl-Philipp от Мая 05, 2008, 18:35 Есть Qt 4.2.3, в ней пример:
\examples\widgets\lineedits\ Вопрос вызывает поведение валидатора QDoubleValidator Цитировать void Window::validatorChanged(int index) { switch (index) { case 0: validatorLineEdit->setValidator(0); break; case 1: validatorLineEdit->setValidator(new QIntValidator( validatorLineEdit)); break; case 2: validatorLineEdit->setValidator(new QDoubleValidator(-999.0, 999.0, 2, validatorLineEdit)); } validatorLineEdit->clear(); } А именно, при попытке ввести значение с валидатором double validator, выводятся цифры, выходящие за указанный диапазон... Где мои грабли? компилятор VC++ Название: Re: вопрос по делегатам Отправлено: pastor от Мая 05, 2008, 18:54 А именно, при попытке ввести значение с валидатором double validator, выводятся цифры, выходящие за указанный диапазон... Где мои грабли? компилятор VC++ Вот на примере Qt 3.3 http://trolltech.com/developer/knowledgebase/faq.2006-05-15.0450651751/?searchterm=validator Нужно наследоваться от QDoubleValidator и переопределить метод validate Название: Re: вопрос по делегатам Отправлено: Karl-Philipp от Мая 08, 2008, 21:57 спасибо большое, получилось :)
|