В моем проекте в Qt есть несколько виджета с несколькими qlineedit. Я хочу, когда пользователь нажимает на каждый qlineedit, чтобы открыть второй виджет, чтобы показать клавиатуру с одним qlineedit для ввода текста и числа.
, когда пользователь нажимает кнопку ok, текст на одном qlineedit переходит к текстовому полю, которое было нажато.
Как я могу это сделать?Как установить сигнал onclick для всех qlineedit, чтобы открыть виджет для клавиатуры и отправить данные обратно?
ответ
ИМХО, я хотел бы сделать это следующим образом:
1) Создайте подкласс QLineEdit и переопределите focusInEvent - это будет обрабатывать не только щелчок, но и другие типы ввода редактирования (например, с клавиатуры). В consturctor вы можете подключить сигнал «openEditor» к своему пользовательскому слоту в виджетах, ответственных за это (обычно это главный виджет).
2) Продвигайте свои изменения в пользовательский подкласс.
3) Из пользовательского focusInEvent вы можете, например, испустить сигнал 'openEditor'. Там вы можете использовать QObject :: sender(), чтобы определить, какой отредактированный излучаемый сигнал.
4) Реализовать слот, который может делать то, что вам нужно (показать правка с клавиатурой, установите текст отправителя (редактирование, излучаемый редактор открытие))
Либо с фильтром событий на эти линии редактирует или создав подкласс, который реализует разыскиваемого обработку мыши и использовать этот класс вместо QLineEdit
спасибо за ответ, Есть ли у вас пример? – MHM
Спасибо за ответ, я должен проверить его завтра с моим компьютером в офисе. – MHM