从不同的 QWidget 中隐藏 QWidget

hide QWidget from a different QWidget

我有一个带有两个小部件的主窗口,buttonsWidget 和 infoWidget。 我试图在单击 buttonsWidget 中的按钮后隐藏 infoWidget(并最终显示不同的小部件)。

我试过:

mainwindow.h

public:
void hideInfo();

mainwindow.cpp

void MainWindow::hideInfo()
{
ui->info->hide();
}

buttonsWidget.cpp

void buttonsWidget::on_timingButton_clicked()
{
MainWindow::hideInfo();

//Then will do something to show 'timingWidget'..

}

非常感谢

为此你应该使用 Signals and Slots

在 buttonsWidget.h 中添加一个信号。

signals:
    void hideInfoSignal();

在主函数中,将按钮信号连接到主窗口方法hideInfo()。

QObject::connect(this->info, SIGNAL(hideInfoSignal),this, SLOT(hideInfo));

我还没有测试过这个,因为我在这台机器上没有 Qt,但它应该可以工作,可能需要稍作修改。如果出现任何错误,请告诉我,我会提供帮助。另外,请阅读信号和插槽文档。