我想为几个类似的QLineEdit对象实现对用户输入的自定义响应.我想创建一个公共处理程序editingFinished()或textChanged()信号并将其分配给所有QLineEdits.但是,响应需要知道信号的发送者 - 例如,它必须突出显示不同颜色的输入文本.
我怎么知道它的处理程序中信号的发送者?
您可以通过调用QObject :: sender()获取指向发送方的指针,然后将此指针强制转换为QLineEdit.就像是
void MyClass::onTextChanged(const QString& text)
{
QLineEdit* edit = qobject_cast<QLineEdit*>(sender());
if (edit)
{
// Do something with QLineEdit
}
else
{
// Just to make sure that you have not make mistake with connecting signals
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2478 次 |
| 最近记录: |