3

创建一个新的小部件,显示它,并将它隐藏在另一个应用程序后面。

有没有办法确定小部件是否对用户可见?例如,如果您有两个应用程序正在运行并且对用户可见(显然其中只有一个具有焦点并且处于活动状态)但两者都是可见的

我对此感兴趣的原因是因为我的小部件有一个调用 setText() 的树小部件(这非常昂贵),所以我想通过仅在树小部件对用户可见时更新来优化性能。

但总的来说,我想知道是否有办法找到“小部件是否对用户可见”。

感谢您提供任何建议和替代方案。

4

3 回答 3

2

我认为这是一种预期的行为,因为它取决于窗口管理器(如果我没记错的话)根据它们的位置 z-index 来绘制窗口......所以 Qt lib 与此无关。

如果您控制显示其他应用程序的时间,您可以手动隐藏 treewidget 并在关闭其他应用程序时再次显示它?

否则,您应该尝试改进您的小部件,因此如果您需要帮助,您应该给我们一些代码 :)

于 2011-08-31T16:17:15.910 回答
1

You propably want something that has to do with focus.

http://doc.qt.io/archives/qt-4.7/qwidget.html#focus-prop

于 2011-09-01T13:24:43.093 回答
1

你试过 QWidget::isActiveWindow()

于 2011-09-01T13:32:25.930 回答