Добавить скопированный текст в LineEdit при нажатии кнопки - PullRequest
0 голосов
/ 30 апреля 2019

Я только начал читать в QT, но не совсем понимаю функции SIGNAL SLOT.У меня есть форма с 2 QLineEdit, и я хочу скопировать текст из первого QLineEdit во второй при нажатии кнопки, но я не знаю, как правильно настроить функцию соединения.

Я пыталсяпривязывая функцию textChanged к себе, но в результате текст будет редактироваться каждый раз, когда я нажимаю букву, так как это сигнал.понять, как читать и копировать текст из первой строки, так как text () не работает внутри handleButton

1 Ответ

0 голосов
/ 01 мая 2019

Чтобы скопировать текст из первого QLineEdit, называемого widget.nameEdit, во второй, widget.nameEdit2, при нажатии кнопки вы можете сделать это с одним соединением SIGNAL / SLOT, используя QLineEdit setText() в lambda:

connect(widget.pushMe, &QPushButton::released,this, [=](){  
widget.nameEdit2.setText(widget.nameEdit.text());
};

Вам не нужно использовать первый сигнал QLineEdit textChanged(), и указанное выше соединение копирует весь текст, доступный в первом поле, во второе поле, все сразу, когда вы нажимаете кнопку. С другой стороны, если вы хотите, чтобы секунда QLineEdit постоянно обновлялась при изменении текста в первом поле, то вы можете использовать сигнал textchanged() первого поля, до setText() второго:

connect(widget.nameEdit, &QLineEdit::textChanged,
            widget.nameEdit2, &QLineEdit::setText);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...