Название: блокирование селекции в QLineEdit Отправлено: spigel от Май 16, 2007, 10:28 Как заблокировать выбор/выделение текста в QLineEdit?
в числе попыток было: лишение фокуса (фокус ушел - селекция осталась) задание цвета подсветки селекции (по прежнему Ctrl-C будет копировать выделенное содержимое, пусть оно и не заметно). Название: блокирование селекции в QLineEdit Отправлено: WW от Май 16, 2007, 10:38 void QLineEdit::deselect () ????
Название: блокирование селекции в QLineEdit Отправлено: spigel от Май 16, 2007, 15:26 deselect снимает селекцию, но не блокирует ее, т.е. после этого вызова вы можете указателем мыши снова выделить текст, тогда как хочется получить другой результат.
когда принципиально нельзя выделять текст в QLineEdit, например такое возможно для элементов QTableView, QTreeView и QListView через указание что элемент или все элементы являются не выбираемыми. в этом случае они не подсвечиваются светло-синим фоном. добавлено спустя 3 минуты: например в среде Windows являются не выделяемыми заголовки окон или к примеру в программе Калькулятор вы не сможете выбрать отдельную цифру. Название: блокирование селекции в QLineEdit Отправлено: WW от Май 16, 2007, 16:07 setEnabled ( bool )
или использовать QLabel Название: блокирование селекции в QLineEdit Отправлено: spigel от Май 16, 2007, 16:59 setEnabled /setDisabled блокирует окно совершенно, когда невозможно получить даже keyPressEvent
QLabel может заменить QLineEdit? Название: блокирование селекции в QLineEdit Отправлено: WW от Май 16, 2007, 18:05 Если ты даешь пользователю возможность ввода текста в поле, то зачем блокировать выделение??? А если юзер ввел строку, сделал кучу ошибок и одним махом решил все исправить? Вначале поставь себя на место пользователя и посмотри на свои глаза в зеркало от пользования такой прогой. Если задача - не дать скопировать, то решается она по другому. все это имхо
Название: блокирование селекции в QLineEdit Отправлено: Sergeich от Май 16, 2007, 18:12 Цитата: "WW" Если ты даешь пользователю возможность ввода текста в поле, то зачем блокировать выделение??? А если юзер ввел строку, сделал кучу ошибок и одним махом решил все исправить? Вначале поставь себя на место пользователя и посмотри на свои глаза в зеркало от пользования такой прогой. Если задача - не дать скопировать, то решается она по другому. все это имхо Полностью поддерживаю. Зачем это вообще нужно? Хотя, в принципе задача решается установкой event filter. Название: блокирование селекции в QLineEdit Отправлено: spigel от Май 17, 2007, 09:44 Вы подходите немного с другой точки зрения = не как решить проблему, а как ее обойти или просто сказать что решать ее не имеет смысла.
какой принцип использовать для решения задачи с помощью 'event filter'? добавлено спустя 11 минут: почему нужно использовать QLabel, когда есть только QLineEdit? можно вообще другим путем идти, исходный код есть = взял да и добавил блокировку :-) чем не принцип? понятно для чего существуют русские форумы :-D спасибо, WWW или Сергеич. Я нашел хорошее решение, которое не требует замены типа объекта (или переписывания его кода) и нет нужды использовать deselect :-D! добавлено спустя 1 час 48 минут: "QLCDNumber is the very oldest part of Qt, tracing its roots back to a BASIC program on the Sinclair Spectrum." |