как связать текстовое поле, созданное в конструкторе QT, с закодированной функцией, используя сигнальные слоты

Я сделал пользовательский интерфейс с помощью дизайнера QT. У которого есть текстовое поле в главном окне, в котором пользователь вводит свое имя. Я хочу вызвать функцию input, когда данные, введенные пользователем, закончились. но я не могу найти способ связать текстовое поле из пользовательского интерфейса, разработанного с использованием конструктора QT, с закодированной функцией из другого класса. Я предполагаю, что сигнал и слоты (в конструкторе qt) могут ссылаться только на компоненты одного и того же окна.

Опять же, в то же время я хочу сохранить имя, введенное пользователем в символьной переменной usr_nm [] в том же вводе функции. Позже я захочу отобразить имя в текстовом браузере с некоторыми другими деталями в выводе функции. (-> Функции ввода и вывода находятся в одном классе.)


person Abhishek Verma    schedule 03.01.2013    source источник


Ответы (1)


Вы должны определить это в Qt Designer?

Мне кажется, было бы лучше, если бы вы просто использовали слот автоподключения, например:

on_textBoxName_textChanged()  // I'm assuming you are using QTextEdit
{
     ui->textBoxName->toPlainText();  // this returns text in QTextEdit as QString.  
}

При этом используется автоматическое соединение - см. здесь.

person MarPan    schedule 03.01.2013
comment
где я должен это написать? также нет способа сделать это непосредственно из дизайнера qt. - person Abhishek Verma; 08.01.2013
comment
Его следует добавить в файлы * .hpp и * .cpp, связанные с файлом * .ui. Qt-designer позволяет вам подключать только существующие сигналы и слоты, и, поскольку вы хотите сделать больше, я не вижу способа сделать это в дизайнере. (Дизайнер Qt4 не поддерживает настраиваемые слоты, как ответил здесь) - person MarPan; 10.01.2013