当我在家中使用笔记本电脑时,会连接一台额外的显示器。但有时我暂时断开第二个显示器(D2)(例如因为我需要在我的Mac上使用ThunderBolt连接)。通常,操作系统负责将D2上可见的所有可见窗口移动到第一个显示器(D1)。但是如果D1的分辨率远远高于D0,则窗口缩小到足以填满D0的整个屏幕。这对用户来说是丑陋和不方便的。
所以我的问题是:是否可以为连接或断开第二台显示器的事件发生事件处理程序或事件过滤器?可能还有其他用途,而不是我上面描述的用途。也许这是不可能的,因为操作系统没有告诉任何应用程序窗口被移动。
答案 0 :(得分:1)
QDesktopWidget
提供信号screenCountChanged(int)
。需要注意的一点是,如果启用了屏幕镜像,屏幕计数将为1,但如果第二个屏幕已分离,则screenCountChanged(..)
信号不,但主屏幕可能会调整大小,所以你可能还想结帐QDesktopWidget::resized(int)
。