Qt主窗口控件发射自定义信号,子窗口接受这个自定义信号并建立连接
时间: 2023-07-19 12:31:49 浏览: 101
qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口
5星 · 资源好评率100%
好的,针对您的问题,我可以给出以下几个步骤:
1. 在主窗口控件中定义一个自定义信号。比如说,我们定义一个名为`mySignal`的信号,信号参数为一个字符串。在主窗口控件的头文件中添加以下内容:
```
signals:
void mySignal(QString str);
```
2. 在主窗口控件的某个事件中(比如按钮点击事件),发射定义的自定义信号。代码如下:
```
void MainWindow::on_pushButton_clicked()
{
emit mySignal("Hello World!");
}
```
3. 在子窗口中,连接主窗口控件的自定义信号。在子窗口的构造函数中添加以下代码:
```
connect(mainWindow, &MainWindow::mySignal, this, &SubWindow::onMySignal);
```
其中`mainWindow`是主窗口控件的指针,`onMySignal`是子窗口中处理信号的槽函数。
4. 在子窗口中,定义处理信号的槽函数`onMySignal`。代码如下:
```
void SubWindow::onMySignal(QString str)
{
qDebug() << "Received signal: " << str;
}
```
这样,在主窗口控件发射自定义信号时,子窗口就能接受到这个信号,并执行相应的操作。
阅读全文