我有一系列 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 似乎对异常没有非常广泛的支持......有什么想法吗?