Я пытаюсь отследить сигнал textChanged () для нескольких QTextEdits.Я хочу сделать то же самое, независимо от того, редактирует ли текст, издающий сигнал: снимите соответствующий флажок в QListWidget, если он становится пустым, и оставьте его отмеченным в противном случае.У меня есть следующая функция:
void MainWindow::changed()
{
QString tempStr = ui->hNMRedit->toPlainText();
if(tempStr != "")
{
ui->checkList->item(0)->setCheckState(Qt::Checked);
}
else
{
ui->checkList->item(0)->setCheckState(Qt::Unchecked);
}
}
При текущем подходе мне нужно было бы создать такую функцию для каждого QTextEdit;каждая функция содержит практически идентичный код.Если бы я сохранил каждое текстовое редактирование в массиве (чтобы я мог найти связанный с ним индекс в QListWidget), смог бы ли я иметь такой слот?
void MainWindow::changed(QWidget *sender) // for whichever text edit emits the
// textChanged() signal
{
QString tempStr = sender->toPlainText();
if(tempStr != "")
{
// I would potentially use some sort of indexOf(sender) function on the array I
// mentioned earlier here... a little new to Qt, sorry
ui->checkList->item(array.indexOf(sender))->setCheckState(Qt::Checked);
}
else
{
// same as above...
ui->checkList->item(array.indexOf(sender))->setCheckState(Qt::Unchecked);
}
}
Возможно ли это илия должен просто создать отдельный слот для каждого редактирования текста?Пожалуйста, дайте мне знать, если понадобятся какие-либо дополнительные разъяснения!
Наконец, я чувствую, что единственное значимое различие между QLineEdits и QTextEdits - это размер по умолчанию.Чтобы все было согласованно, нужно ли использовать один из этих объектов в моем интерфейсе?
Спасибо !!!