qt中已经有窗口A,窗口B及主程序main,想让A中触发on_pushButton_clicked()后转到b窗口
时间: 2024-04-15 07:29:17 浏览: 104
qt--主窗口中按钮弹出子窗口,并把主窗口信号发送给子窗口
5星 · 资源好评率100%
您可以使用Qt中的信号和槽机制来实现这个功能。首先,在窗口A的类中声明一个自定义信号,例如`switchToBWindow()`。然后,在`on_pushButton_clicked()`槽函数中发射这个信号。接下来,在主程序main中创建窗口B的实例,并连接窗口A的信号到窗口B的槽函数,以实现窗口切换。
以下是示例代码:
在窗口A的类中添加信号声明:
```cpp
class WindowA : public QWidget
{
Q_OBJECT
public:
explicit WindowA(QWidget *parent = nullptr);
signals:
void switchToBWindow();
private slots:
void on_pushButton_clicked();
};
```
在窗口A的槽函数`on_pushButton_clicked()`中发射信号:
```cpp
void WindowA::on_pushButton_clicked()
{
emit switchToBWindow();
}
```
在主程序main中创建窗口A和窗口B的实例,并连接信号和槽函数:
```cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
WindowA windowA;
WindowB windowB;
QObject::connect(&windowA, &WindowA::switchToBWindow, &windowB, &WindowB::show);
windowA.show();
return app.exec();
}
```
这样,在窗口A中点击按钮时,会触发信号`switchToBWindow()`,然后主程序main会接收到这个信号并调用窗口B的槽函数`show()`,从而切换到窗口B。请根据您的实际需求进行相应的调整和修改。
阅读全文