QSignalMapper(textChanged(QWidget *)シグナルを発する)を介してスロットに接続された一連のQTextEditsとQLineEditsがあります。接続されたスロットが呼び出されたとき (下に貼り付けられています)、この 2 つを区別して、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 は例外を非常に広範囲にサポートしていないようです...何かアイデアはありますか?