У меня есть серия QTextEdits и QLineEdits, подключенных к слоту через QSignalMapper (который испускает сигнал textChanged (QWidget *)). Когда вызывается подключенный слот (вставлен ниже), я должен иметь возможность различать два, так что я знаю, вызывать ли функцию text () или toPlainText (). Какой самый простой способ определить тип подкласса QWidget?
void MainWindow::changed(QWidget *sender)
{
QTextEdit *temp = qobject_cast<QTextEdit *>(sender);
QString currentText = temp->toPlainText(); // or temp->text() if its
// a QLineEdit...
if(currentText.compare(""))
{
...
}
else
{
...
}
}
Я подумывал об использовании try-catch, но Qt, похоже, не имеет широкой поддержки исключений ... Есть идеи?