我有一系列QTextEdits和QLineEdits通过QSignalMapper(它发出一个textChanged(QWidget *)信号)连接到一个插槽。当连接槽被调用(粘贴在下面)时,我需要能够区分这两者,因此我知道是否调用text()或toPlainText()函数。确定QWidget的子类型的最简单方法是什么?确定Qt中的对象类型
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似乎没有非常广泛的例外支持...任何想法?
谢谢你,伟大工程! – 2010-02-01 08:16:57