C++ 检测QStackedWidget中的小部件更改
我有一个GUI,它被放在一个屏幕上,屏幕上有映射到功能键的硬件按钮。当按下顶行键时,屏幕将切换到不同的数据视图,侧按钮映射到当前显示的视图中,并在屏幕上显示相应的信息(按钮或标签) 我有一个包含这些按钮的顶级小部件和一个内部有不同数据视图(小部件)的堆叠小部件。我可以从C++ 检测QStackedWidget中的小部件更改,c++,qt,C++,Qt,我有一个GUI,它被放在一个屏幕上,屏幕上有映射到功能键的硬件按钮。当按下顶行键时,屏幕将切换到不同的数据视图,侧按钮映射到当前显示的视图中,并在屏幕上显示相应的信息(按钮或标签) 我有一个包含这些按钮的顶级小部件和一个内部有不同数据视图(小部件)的堆叠小部件。我可以从QMainWindow在堆叠的小部件中导航,但我无法确定小部件如何知道它不再具有焦点,因此我可以暂停对数据的更新,鉴于其中一个视图是视频数据,我不希望它在后台不断更新。在这里,main窗口仅仅断开所有信号,更改小部件,然后建立新的
QMainWindow
在堆叠的小部件中导航,但我无法确定小部件如何知道它不再具有焦点,因此我可以暂停对数据的更新,鉴于其中一个视图是视频数据,我不希望它在后台不断更新。在这里,main窗口
仅仅断开所有信号,更改小部件,然后建立新的连接是否合理,还是有更好的Qt方法?我不一定想要这种紧密耦合,因为视图本身知道它应该在按钮上显示什么,而不是在主窗口上
我尝试在堆叠小部件的子部件中覆盖
focusInEvent(QFocusEvent*e)
,但它从未被调用。您的QStackedWidget
有一个信号currentChanged(int index)
,每当QStackedLayout
上当前显示的小部件发生变化时,就会触发该信号,您不能使用此信号切换显示视频的小部件上的标志,使其不呈现视频吗
当currentWidget是视频小部件时,您可以恢复对提供给它的数据(imaghe)的渲染,否则您可以简单地丢弃提供给它的数据,并通过不渲染来节省CPU周期
我是不是遗漏了什么