![]() |
|
|
![]()
|
|
| anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
есть QTableWidget, нужно при редактировании какой-либо ячейки получать текст до itemChanged() (или cellChanged()), проверить его и если все в порядке то принять изменение, иначе отменить его(откатить на предыдущий текст) либо как минимум сделать ячейку пустой. Возможно либо сделать как-нибудь? желательно без наследования и попроще
заранее спасибо Добавлено через 3 минуты и 23 секунды гугл посоветовал что-то наподобие connect(view()->itemDelegate(), SIGNAL(commitData(QWidget*)), this, SLOT(commitData(QWidget*))); но непонятно как пользоваться этим commitData()... Это сообщение отредактировал(а) anatox91 - 10.10.2011, 23:57 -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
| loneybibi |
|
||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Не вижу проблем вообще
Создаешь слот что то вроде этого:
Соединяешь с сигналом QTableWidget:
-------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||
|
|||||
| anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: нет Всего: 13 |
я не про это спрашивал
мне нужно при редактировании ячейки(а конкретно ввода числа в какой-то из систем счисления) проверить правильность введенного числа и соответствие его текущей системе счисления, и если не соответствует(неправильно введено) то отменить этот ввод(типа undo action) я думаю надо как-то получать текст ячейки ДО itemChanged() или cellChanged() и работать с ним, но как это сделать раньше этих сигналов я не знаю Это сообщение отредактировал(а) anatox91 - 11.10.2011, 01:40 -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
| loneybibi |
|
|||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Тогда думаю лучше будет использовать делегаты. И в делегате например QSpinBox переопределять ввод числа и корректировать. Вот тут доступно про делегаты написано:
http://doc.crossplatform.ru/qt/4.5.0/model...w-delegate.html -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
А чтобы не давать пользователю ружьё и не показывать на ногу, в делегата лучше вставить валидатор
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |