qT中在信号执行函数中如何获取发出信号的控件,请给我完整代码
时间: 2024-02-10 12:11:02 浏览: 170
如何在QThread中使用控件
在信号执行函数中,可以使用sender()函数获取发出信号的控件,下面是一个获取发出信号的控件并在标签中显示其文本的示例代码:
```cpp
// 头文件中声明槽函数
private slots:
void onButtonClicked();
// 在构造函数中连接信号和槽函数
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
// 槽函数实现
void Widget::onButtonClicked()
{
// 获取发出信号的控件
QPushButton *button = qobject_cast<QPushButton *>(sender());
if (button) {
// 在标签中显示控件的文本
ui->label->setText(button->text());
}
}
```
在这个示例代码中,我们将`pushButton`的`clicked()`信号连接到了`onButtonClicked()`槽函数上。当`pushButton`被点击时,`onButtonClicked()`函数会被执行。在函数中,我们使用`sender()`函数获取发出信号的控件,并将其强制转换为`QPushButton`类型。如果强制转换成功,说明发出信号的确实是一个`QPushButton`控件,我们就可以使用`text()`函数获取该控件的文本,并将其显示在`label`标签中。
阅读全文