2016-10-30 15 views
0

В моем проекте в Qt есть несколько виджета с несколькими qlineedit. Я хочу, когда пользователь нажимает на каждый qlineedit, чтобы открыть второй виджет, чтобы показать клавиатуру с одним qlineedit для ввода текста и числа.
, когда пользователь нажимает кнопку ok, текст на одном qlineedit переходит к текстовому полю, которое было нажато.
Как я могу это сделать?Как установить сигнал onclick для всех qlineedit, чтобы открыть виджет для клавиатуры и отправить данные обратно?

ответ

1

ИМХО, я хотел бы сделать это следующим образом:

1) Создайте подкласс QLineEdit и переопределите focusInEvent - это будет обрабатывать не только щелчок, но и другие типы ввода редактирования (например, с клавиатуры). В consturctor вы можете подключить сигнал «openEditor» к своему пользовательскому слоту в виджетах, ответственных за это (обычно это главный виджет).

2) Продвигайте свои изменения в пользовательский подкласс.

3) Из пользовательского focusInEvent вы можете, например, испустить сигнал 'openEditor'. Там вы можете использовать QObject :: sender(), чтобы определить, какой отредактированный излучаемый сигнал.

4) Реализовать слот, который может делать то, что вам нужно (показать правка с клавиатурой, установите текст отправителя (редактирование, излучаемый редактор открытие))

+0

Спасибо за ответ, я должен проверить его завтра с моим компьютером в офисе. – MHM

0

Либо с фильтром событий на эти линии редактирует или создав подкласс, который реализует разыскиваемого обработку мыши и использовать этот класс вместо QLineEdit

+0

спасибо за ответ, Есть ли у вас пример? – MHM