Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从其他QWidget隐藏QWidget_C++_Qt_Qwidget - Fatal编程技术网

C++ 从其他QWidget隐藏QWidget

C++ 从其他QWidget隐藏QWidget,c++,qt,qwidget,C++,Qt,Qwidget,我有一个带有两个小部件的主窗口,buttonsWidget和infoWidget。 我试图在单击buttonsWidget中的一个按钮后隐藏infoWidget(并最终显示一个不同的小部件) 我试过: 主窗口 public: void hideInfo(); mainwindow.cpp void MainWindow::hideInfo() { ui->info->hide(); } buttonsWidget.cpp void buttonsWidget::on_timing

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

我试过:

主窗口

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'..

}
非常感谢

您应该使用它

在buttonsWidget.h中添加一个信号

signals:
    void hideInfoSignal();
在main函数中,将按钮信号与mainwindow方法hideInfo()连接


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

谢谢您的帮助。最后我做了:buttonsWidget.h signals:void hideinfo();h公共插槽:void hideInfo();buttonsWidget.cpp on_timing_button_clicked(){hideInfo();}infoWidget.cpp hideInfo(){this->hide;}mainWindow.cpp connect(ui->buttons,SIGNAL(hideInfo),ui->info,SLOT(hideInfo))太棒了!很高兴我能帮忙。看起来不错!但正如您所知,文档中说要发出信号,您应该在调用信号之前输入关键字“emit”。如下所示:“emit hideInfo()”。在这篇文章中讨论了使用emit和调用信号之间的区别:很抱歉再次打扰您-我现在尝试在它的位置显示一个不同的小部件。我有:连接(ui->按钮,信号(showTimingSignal()),***,插槽(showTImingScreen());有****的地方我有什么?应该是对定义了slot showTImingScreen()的对象的引用。
QObject::connect(this->info, SIGNAL(hideInfoSignal),this, SLOT(hideInfo));